- FastAPI: 主Web框架,提供API接口
- Celery: 分布式任务队列,处理异步任务
- Redis: 消息代理和结果后端
- 多个Worker: 不同队列的专用worker
pip install -r requirements.txt
# 使用Docker Compose
docker-compose up -d
# 或者直接运行Redis
redis-server
# 方式1: 使用启动脚本
chmod +x start_celery_worker.sh
./start_celery_worker.sh
# 方式2: 手动启动
celery -A celery_config worker --loglevel=info --queues=chat_queue --concurrency=4
celery -A celery_config worker --loglevel=info --queues=background_queue --concurrency=2
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
- POST
/ask
- 提交异步聊天任务 - GET
/task/{task_id}
- 查询任务状态
- POST
/ask/sync
- 同步处理聊天(兼容旧版本)
chat_queue
: 聊天任务队列,并发度4background_queue
: 后台任务队列,并发度2default
: 默认队列,并发度2
# 启动监控
python src/monitor.py
# 查看Celery状态
celery -A celery_config status
# 任务删除
redis-cli -n 0 KEYS "celery-task-meta*" | xargs redis-cli -n 0 DEL
- Redis连接失败: 检查Redis服务是否运行
- Worker无法启动: 检查依赖是否安装完整
- 任务积压: 增加worker并发度或优化任务处理