问题描述
目前我正在 celery 中运行需要 10 到 15 分钟才能完成的任务,但问题是我如何重新启动当前在 worker 中运行的任务以及当前未运行但等待任务运行而我强行停止 worker 的任务或者万一我的服务器崩溃或停止。现在发生的情况是,如果我再次启动 celery,它不会启动最后一个正在运行的任务或剩余的任务。
解决方法
您可以做的一件事是在任务上启用 acks_late
。此外,阅读他们的 FAQ section on acks late and retry.
@app.task(acks_late=True)
def task(*args,**kwargs):
...