在RabbitMQ重启时,芹菜撤销丢失了

时间:2014-04-09 17:27:07

标签: python celery

我们正在使用芹菜eta任务来安排未来的任务FAR(如月)。 现在使用rabbitMQ后端,因为mongo后端在重启工作时确实松了这么多任务。

实际上,使用rabbitMQ后端的任务似乎在芹菜和RabbitMQ重启之间持久,但是撤销消息似乎在rabbitMQ重启时丢失了。 我想如果撤销消息丢失,那些应该被杀死的eta任务无论如何都会执行。

1 个答案:

答案 0 :(得分:1)

这可能来自文档(Persistent Revokes):

  

已撤销的任务列表在内存中,因此如果所有工作人员重新启动   被撤销的ids清单也将消失。如果你想保留这个   重新启动之间的列表,您需要指定这些文件   通过使用-statedb参数存储在芹菜工作者:

$ celery -A proj worker -l info --statedb=/var/run/celery/worker.state