我们正在使用芹菜eta任务来安排未来的任务FAR(如月)。 现在使用rabbitMQ后端,因为mongo后端在重启工作时确实松了这么多任务。
实际上,使用rabbitMQ后端的任务似乎在芹菜和RabbitMQ重启之间持久,但是撤销消息似乎在rabbitMQ重启时丢失了。 我想如果撤销消息丢失,那些应该被杀死的eta任务无论如何都会执行。
答案 0 :(得分:1)
这可能来自文档(Persistent Revokes):
已撤销的任务列表在内存中,因此如果所有工作人员重新启动 被撤销的ids清单也将消失。如果你想保留这个 重新启动之间的列表,您需要指定这些文件 通过使用-statedb参数存储在芹菜工作者:
$ celery -A proj worker -l info --statedb=/var/run/celery/worker.state