重新启动经纪人

时间:2016-08-03 18:26:51

标签: redis celery

我开始了我的芹菜工队队列(在后台):

celery worker -Q my_queue -l info

此后,其经纪人(redis)停止了,同时后台celery worker增加时间后继续尝试重新连接到redis。

现在我的目标是在重新启动redis后重新启动非重复 my_queue。我意识到以下celery API在重新连接之前不会返回my_queue

celery.task.control.inspect().active_queues()

现在,如果我开始新的my_queue,如果之后重新连接之前的my_queue,我最终会重复celery worker

解决方案可能是让celery worker在发现其代理被停止时主动退出,但我找不到正确的方法来执行此操作。我也不想通过之前保存的PID来杀死它。任何建议或替代方案将不胜感激。

1 个答案:

答案 0 :(得分:0)

嗯,我知道这与我的要求相矛盾,但似乎我确实需要PID文件的帮助:

celery worker -Q my_queue -l info --pidfile=pid.log

如果pid.log中保存的pid已经运行,将引发异常。

这仍然不是理想的解决方案,任何有关如何让celery worker在发现其经纪人停止时主动退出的建议仍然会受到赞赏。

相关问题