我正在使用djcelery和django的管理站点。如果我想停止已启动的djcelery任务,我是否使用revoke,terminate或kill以及有什么区别?
答案 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