mirror of
https://git.oceanpay.cc/danial/kami_apple_exchage.git
synced 2025-12-18 21:23:49 +00:00
本次提交将后端的任务队列系统从Celery迁移到了Arq,以支持基于协程的任务处理。主要改动包括: - 更新文档和配置文件,反映架构变化。 - 修改健康检查和服务初始化逻辑,以适应Arq的使用。 - 移除与Celery相关的代码,并添加Arq任务定义和调度器。 - 更新Dockerfile和相关脚本,确保Arq worker能够正确运行。 - 调整API和业务服务中的任务处理逻辑,移除对Celery的依赖。 这些改动旨在提高系统的异步处理能力和整体性能。
97 lines
2.0 KiB
Python
97 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
简单的Gunicorn测试脚本
|
|
用于验证Docker容器中的Gunicorn配置
|
|
"""
|
|
|
|
import multiprocessing
|
|
import os
|
|
import signal
|
|
import sys
|
|
import time
|
|
from pathlib import Path
|
|
|
|
# 模拟Gunicorn配置
|
|
bind = "0.0.0.0:8000"
|
|
workers = max(1, multiprocessing.cpu_count() * 2 + 1)
|
|
worker_class = "uvicorn.workers.UvicornWorker"
|
|
worker_connections = 1000
|
|
timeout = 30
|
|
keepalive = 2
|
|
|
|
|
|
def test_imports():
|
|
"""测试必要的模块导入"""
|
|
try:
|
|
import gunicorn
|
|
import uvicorn
|
|
|
|
print("✅ Uvicorn和Gunicorn导入成功")
|
|
return True
|
|
except ImportError as e:
|
|
print(f"❌ 模块导入失败: {e}")
|
|
return False
|
|
|
|
|
|
def test_arq():
|
|
"""测试Arq worker配置"""
|
|
try:
|
|
from app.core.arq_worker import ArqWorkerSettings
|
|
|
|
settings = ArqWorkerSettings()
|
|
print("✅ Arq worker配置成功")
|
|
return True
|
|
except ImportError as e:
|
|
print(f"❌ Arq worker配置失败: {e}")
|
|
return False
|
|
|
|
|
|
def test_database():
|
|
"""测试数据库连接"""
|
|
try:
|
|
from app.core.database import get_database
|
|
|
|
db = get_database()
|
|
print("✅ 数据库连接配置成功")
|
|
return True
|
|
except ImportError as e:
|
|
print(f"❌ 数据库配置失败: {e}")
|
|
return False
|
|
|
|
|
|
def main():
|
|
"""主测试函数"""
|
|
print("🚀 开始测试Docker容器环境...")
|
|
|
|
tests = [
|
|
test_imports,
|
|
test_arq,
|
|
test_database,
|
|
]
|
|
|
|
passed = 0
|
|
failed = 0
|
|
|
|
for test in tests:
|
|
try:
|
|
if test():
|
|
passed += 1
|
|
else:
|
|
failed += 1
|
|
except Exception as e:
|
|
print(f"❌ 测试异常: {e}")
|
|
failed += 1
|
|
|
|
print(f"\n📊 测试结果: {passed} 通过, {failed} 失败")
|
|
|
|
if failed == 0:
|
|
print("🎉 所有测试通过! 容器准备就绪。")
|
|
return 0
|
|
else:
|
|
print("⚠️ 有测试失败,请检查配置。")
|
|
return 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|