一旦工人被强行关闭,如何在芹菜中重新启动正在运行的任务和挂起的任务?

问题描述

目前我正在 celery 中运行需要 10 到 15 分钟才能完成的任务,但问题是我如何重新启动当前在 worker 中运行的任务以及当前未运行但等待任务运行而我强行停止 worker 的任务或者万一我的服务器崩溃或停止。现在发生的情况是,如果我再次启动 celery,它不会启动最后一个正在运行的任务或剩余的任务。

解决方法

您可以做的一件事是在任务上启用 acks_late。此外,阅读他们的 FAQ section on acks late and retry.

@app.task(acks_late=True)
def task(*args,**kwargs):
    ...