当我发送任务并尝试撤消
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
答案 0 :(得分:1)
gevent并发不允许终止作业。 Pre-fork确实允许这样做,因为它就像杀死正在运行要终止的任务的工作进程一样简单,线程也是如此。
对此存在一个问题,提出了一个解决方案-https://github.com/celery/celery/issues/4019-但没有人提出PR。