Files
kami_apple_exchage/backend/test_gunicorn.py
danial 8ad2a5366a refactor(backend): 将Celery替换为Arq进行协程任务处理
本次提交将后端的任务队列系统从Celery迁移到了Arq,以支持基于协程的任务处理。主要改动包括:
- 更新文档和配置文件,反映架构变化。
- 修改健康检查和服务初始化逻辑,以适应Arq的使用。
- 移除与Celery相关的代码,并添加Arq任务定义和调度器。
- 更新Dockerfile和相关脚本,确保Arq worker能够正确运行。
- 调整API和业务服务中的任务处理逻辑,移除对Celery的依赖。

这些改动旨在提高系统的异步处理能力和整体性能。
2025-09-18 16:02:05 +08:00

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())