我们正在运行一个带有Celery工作人员的Django站点以及用于cron作业的芹菜击败。有时我们会有一个流氓芹菜节拍过程,当主管重新启动,或者主管中的工作重新启动时,它会继续运行(我不确定它究竟发生了什么)。基本上发生的事情是我们最终会运行两个芹菜节拍过程,这些过程会复制这些任务。这是一个问题,因为一个任务发送提醒电子邮件,当发生这种情况时,很多用户会收到重复的电子邮件。
有没有人有类似的经验芹菜节拍&主管。有没有办法检查一个且只有一个芹菜节拍过程一直在运行?
答案 0 :(得分:0)
也许有更好的答案,但这是我到目前为止所提出的......
我认为流氓流程发生在我们重新启动主管的部署期间。我已经离开了这个:
fab.sudo('supervisorctl restart all')
到此:
fab.sudo('supervisorctl stop all')
with fab.settings(warn_only=True):
fab.run("ps auxww | grep 'celery' | awk '{print $2}' | xargs kill -9")
fab.sudo('supervisorctl start all')
这似乎有效,但我不确定这是否是最可靠的解决方案。