如何在运行时撤消任务

时间:2019-09-05 03:30:55

标签: python task celery revoke

当我发送任务并尝试撤消

app=Celery()
app.control.revoke(task.id)
#or
app.control.revoke(task.id, terminate=True)

我收到该错误:

[2019-09-05 05:27:50,110: ERROR/MainProcess] pidbox command error: NotImplementedError("<class 'celery.concurrency.gevent.TaskPool'> does not implement kill_job",)

我正在使用gevent

celery -A MyApp worker -l info -P gevent

怎么了?

TY

1 个答案:

答案 0 :(得分:1)

gevent并发不允许终止作业。 Pre-fork确实允许这样做,因为它就像杀死正在运行要终止的任务的工作进程一样简单,线程也是如此。

对此存在一个问题,提出了一个解决方案-https://github.com/celery/celery/issues/4019-但没有人提出PR。