В чем разница между Revoke, Terminate и Kill при использовании djcelery?
Я использую админ-сайт djcelery и django. Если я хочу остановить запущенную задачу djcelery, использую ли я отмену, завершение или уничтожение и в чем разница?
1 ответ
Решение
Вы должны использовать 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