我用监督管理生产芹菜。我的主管配置如下。
[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我想问,当我的代码在生产中发生变化时,如何重新启动芹菜工人?
发布于 2017-12-18 10:47:54
我遇到的主要问题是,如果告诉主管杀死组会导致数据丢失,那么长时间运行的任务可能会被杀死。
我使用的解决方案是告诉主进程术语,这将在工人完成任务时杀死他们。然后,主管将在所有工人完成后重新启动主进程。
ps aux | grep celery.*MainProcess | awk '{print $2}' | xargs kill -TERM发布于 2017-12-15 17:57:12
在主管文件中添加以下内容并重新启动主管。
killasgroup=true
https://stackoverflow.com/questions/46804356
复制相似问题