服务器重新启动后立即重新启动“未经确认”的任务

时间:2020-10-06 02:09:13

标签: python celery

我有一些幂等的任务。这意味着我不介意它们是否被执行多次,但是我需要它们被执行-并尽快执行。

我面临的一个“问题”是,可以随时重新启动部署在服务器上的Celery worker,我希望,一旦它重新联机,它可以立即从剩下的位置继续处理任务,包括服务器脱机时正在处理的任务。

我一直在调整配置,发现task_acks_latetask_reject_on_worker_lost.

@app.task(bind=True, task_acks_late=True, task_reject_on_worker_lost=True)

这似乎有助于重新排队任务,但是一旦服务器重新启动,它就不会开始处理待处理的任务,并在Redis中标记为unacked

我应该为用例添加其他配置选项吗?

我不知道这是否相关,但是我使用以下命令运行工作程序:

celery --app=tasks.app worker --loglevel INFO

0 个答案:

没有答案