小编典典

取消Celery已经执行的任务?

python

我一直在阅读文档并进行搜索,但似乎找不到直接的答案:

您可以取消已经执行的任务吗?(由于任务已开始,需要一段时间,因此需要取消一半)

我在Celery FAQ的文档中找到了这个

>>> result = add.apply_async(args=[2, 2], countdown=120)
>>> result.revoke()

但是我不清楚这是否会取消排队的任务,或者是否会杀死工作程序上正在运行的进程。感谢您可以摆脱的光芒!


阅读 179

收藏
2020-12-20

共1个答案

小编典典

撤销将 取消任务执行。如果任务被吊销,工人将忽略该任务并且不执行它。如果您不使用持久撤销,则可以在worker重新启动后执行任务。

http://docs.celeryproject.org/en/latest/userguide/workers.html#worker-
persistent-
revokes

revoke具有终止选项,默认情况下为 False 。如果需要终止正在执行的任务,则需要将Terminate设置为 True

>>> from celery.task.control import revoke
>>> revoke(task_id, terminate=True)

http://docs.celeryproject.org/en/latest/userguide/workers.html#revoke-
revoking-
tasks

2020-12-20