1

我正在使用 djcelery 和 django 的管理站点。如果我想停止一个已经启动的 djcelery 任务,我是使用 revoke、terminate 还是 kill,有什么区别?

4

1 回答 1

2

你应该用它terminate来杀死一个已经开始的任务。

撤销:

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

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

终止:

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

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

杀:

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

ps auxww | grep 'celery worker' | awk '{print $2}' | xargs kill -9
于 2014-11-05T07:09:07.790 回答