我们使用celele eta任务来安排未来的任务FAR(如月份)。现在使用rabbitMQ后端,因为mongo后端在工作者重新启动时确实丢失了这样的任务。
事实上,使用rabbitMQ后端的任务似乎在芹菜和rabbitMQ重新启动时是持久的,但在rabbitIQ重新启动时,撤销消息似乎丢失了。我想,如果revoke消息丢失,那么那些应该被杀死的eta任务无论如何都会执行。
这可能对文档(持久吊销)有所帮助:
已撤消任务的列表在内存中,因此如果所有工作程序都重新启动已撤销id的列表也将消失。如果你想保留这个列出重新启动之间需要指定的文件通过使用–statedb参数将其存储在celenit-worker:中
$ celery -A proj worker -l info --statedb=/var/run/celery/worker.state