Supervisord 如何重启 Celery Worker 运行
How to Restart Celery Wroker ran by Supervisord
我运行正在使用 supervisord 生产芹菜。我的主管配置如下。
[program:celeryd]
command=%(ENV_PROJECT_PATH)s/scripts/celery_worker.sh
stdout_logfile=%(ENV_PROJECT_PATH)s/celeryd.log
stderr_logfile=%(ENV_PROJECT_PATH)s/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=1000
priority=1000
我对运行芹菜工人的命令是
celery_path=$(which celery)
$celery_path -A Project_Name worker --loglevel=info
我想问一下,当我的代码库在生产中发生变化时如何重启celery worker?
在 supervisor 文件中添加以下内容并重新启动 supervisor。
killasgroup=true
我 运行 遇到的主要问题是,如果您告诉主管 killasgroup 会导致数据丢失,那么长的 运行ning 任务可能会被杀死。
我已经开始使用的解决方案是将主进程告诉 TERM,这将在工作人员完成任务时将其杀死。 supervisor 将在所有 worker 完成后重新启动主进程。
ps aux | grep celery.*MainProcess | awk '{print }' | xargs kill -TERM
这也有关系。
我运行正在使用 supervisord 生产芹菜。我的主管配置如下。
[program:celeryd]
command=%(ENV_PROJECT_PATH)s/scripts/celery_worker.sh
stdout_logfile=%(ENV_PROJECT_PATH)s/celeryd.log
stderr_logfile=%(ENV_PROJECT_PATH)s/celeryd.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=1000
priority=1000
我对运行芹菜工人的命令是
celery_path=$(which celery)
$celery_path -A Project_Name worker --loglevel=info
我想问一下,当我的代码库在生产中发生变化时如何重启celery worker?
在 supervisor 文件中添加以下内容并重新启动 supervisor。
killasgroup=true
我 运行 遇到的主要问题是,如果您告诉主管 killasgroup 会导致数据丢失,那么长的 运行ning 任务可能会被杀死。
我已经开始使用的解决方案是将主进程告诉 TERM,这将在工作人员完成任务时将其杀死。 supervisor 将在所有 worker 完成后重新启动主进程。
ps aux | grep celery.*MainProcess | awk '{print }' | xargs kill -TERM
这也有关系。