В чем разница между 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
Другие вопросы по тегам