🖥️ 使用 Supervisor 后台运行 Celery Worker
Supervisor 是一款轻量级的进程管理工具,可用于后台运行 Celery 等服务,并实现自动启动、重启、日志记录等功能。
🧾 Step 1:创建 Supervisor 配置文件
在项目根目录或任意目录下,创建 supervisord.conf 配置文件:
[supervisord]
nodaemon=false
logfile=/home/ubuntu/xxx/xxx/logs/supervisord.log
pidfile=/home/ubuntu/xxx/xxx/supervisord.pid
logfile_maxbytes=50MB
logfile_backups=10
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///home/ubuntu/xxx/xxx/supervisor.sock
[unix_http_server]
file=/home/ubuntu/xxx/xxx/supervisor.sock ; UNIX socket 文件用于控制指令交互
[program:celery]
command=celery -A celery_tasks worker -l info -c 2 -Q dev-celery
directory=/home/ubuntu/xxx/xxx
autostart=true
autorestart=true
stdout_logfile=/home/ubuntu/xxx/xxx/logs/celery.log
stderr_logfile=/home/ubuntu/xxx/xxx/logs/celery_err.log
📝 参数说明补充:
配置项 | 示例值 | 说明 |
---|---|---|
logfile | supervisord 日志文件路径 | 建议定期轮转 |
pidfile | Supervisor 运行时 PID 文件 | 用于停止 supervisor 本身 |
command | 启动 celery 的命令 | 可设置参数如并发数(-c)/指定队列(-Q)等 |
autostart / autorestart | 是否开机启动 / 异常退出是否重启 | 推荐均设为 true |
stdout_logfile | 标准输出日志文件路径(可通过 tail 实时查看) | |
directory | 项目主目录路径 | celery 的工作目录,即实际运行目录 |
💡 注意:请根据你实际项目路径将 /home/ubuntu/xxx/xxx 替换为真实地址,否则 supervisor 启动会失败。
🧪 Step 2:启动 Supervisor 守护进程
使用 supervisord 指定配置文件运行:
supervisord -c /home/ubuntu/xxx/xxx/supervisord.conf
检查是否成功:
ps aux | grep supervisord
默认将后台运行,并自动启动配置中的 celery worker。
🧰 Step 3:Supervisord 监控管理(可选)
你可以使用 supervisorctl 命令来控制:
# 指定 .conf 文件进行管理
supervisorctl -c /home/ubuntu/xxx/xxx/supervisord.conf status
# 启动 celery
supervisorctl -c /home/ubuntu/xxx/xxx/supervisord.conf start celery
# 重启 celery
supervisorctl -c /home/ubuntu/xxx/xxx/supervisord.conf restart celery
# 停止 celery
supervisorctl -c /home/ubuntu/xxx/xxx/supervisord.conf stop celery
✅ 小贴士与建议
- 若部署多个程序(如 celery worker 与 beat),可以加入多个 [program:x] 配置条目
- 建议创建 logs/ 目录避免日志路径无效导致无法启动
- 若服务未启动 / 未重启成功,请先 tail 日志排查错误:
tail -f /home/ubuntu/xxx/xxx/logs/celery.log
作者:freed 创建时间:2025-03-28 15:09
最后编辑:freed 更新时间:2025-03-28 15:10
最后编辑:freed 更新时间:2025-03-28 15:10