我正在使用 djcelery 和 django 的管理站点。如果我想停止一个已经启动的 djcelery 任务,我是使用 revoke、terminate 还是 kill,有什么区别?
问问题
587 次
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 回答