消息队列快速启动指南
版本: v1.0
最后更新: 2026-02-05
🚀 快速启动
1. 启动 Celery Worker
# 启动所有队列的 Worker
celery -A src.tasks.celery_app worker \
--queues=notifications,normal_priority,training \
--concurrency=4 \
--loglevel=info
# 或仅启动通知队列 Worker
celery -A src.tasks.celery_app worker \
--queues=notifications \
--concurrency=2 \
--loglevel=info
2. 启动 Celery Beat(定时任务,可选)
celery -A src.tasks.celery_app beat --loglevel=info
3. 验证队列状态
# 查看活跃队列
celery -A src.tasks.celery_app inspect active_queues
# 查看 Worker 状态
celery -A src.tasks.celery_app inspect stats
# 查看注册的任务
celery -A src.tasks.celery_app inspect registered
📋 队列说明
| 队列名称 | 用途 | 优先级 | Worker 建议数 |
|---|---|---|---|
notifications |
通知发送 | 低 | 2-4 |
normal_priority |
文档处理 | 中 | 2-3 |
training |
模型训练 | 高 | 1-2(GPU) |
high_priority |
付费用户任务 | 高 | 1-2 |
low_priority |
后台任务 | 低 | 1-2 |
🔧 配置
环境变量
# .env 文件
# Redis 配置(消息队列使用)
REDIS_URL=redis://localhost:6379/0
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
# 是否使用消息队列发送通知(默认:true)
USE_MESSAGE_QUEUE_FOR_NOTIFICATIONS=true
📊 监控
Flower(推荐)
# 安装
pip install flower
# 启动
celery -A src.tasks.celery_app flower
命令行监控
# 实时查看任务
celery -A src.tasks.celery_app events
# 查看任务结果
celery -A src.tasks.celery_app result <task_id>
🐛 故障排查
任务不执行
- 检查 Worker 是否运行
- 检查队列名称是否正确
- 检查 Redis 连接是否正常
任务失败
- 查看 Worker 日志
- 检查任务重试次数
- 查看错误堆栈
队列积压
- 增加 Worker 数量
- 检查任务执行时间
- 优化任务逻辑