使用djcelery时,Revoke,Terminate和Kill有什么区别?

时间:2014-11-05 06:43:18

标签: python django django-admin celery djcelery

我正在使用djcelery和django的管理站点。如果我想停止已启动的djcelery任务,我是否使用revoke,terminate或kill以及有什么区别?

1 个答案:

答案 0 :(得分:2)

您应该使用terminate来杀死已经启动的任务。

<强>撤销:

>>> from celery.task.control import revoke
>>> revoke(task_id)

当工作人员收到撤销请求时,它将跳过执行任务,但不会终止已经执行的任务。

<强>终止

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

如果设置了terminate,则将终止处理该任务的辅助子进程。发送的默认信号是TERM。终止任务也会撤销它。

<强>杀:

这与上述两个不同。 KILL用于杀死工人

ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
相关问题