消息队列快速启动指南

版本: 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

访问: http://localhost:5555

命令行监控

# 实时查看任务
celery -A src.tasks.celery_app events

# 查看任务结果
celery -A src.tasks.celery_app result <task_id>

🐛 故障排查

任务不执行

  1. 检查 Worker 是否运行
  2. 检查队列名称是否正确
  3. 检查 Redis 连接是否正常

任务失败

  1. 查看 Worker 日志
  2. 检查任务重试次数
  3. 查看错误堆栈

队列积压

  1. 增加 Worker 数量
  2. 检查任务执行时间
  3. 优化任务逻辑

📚 相关文档