Как остановить/убить задачи Airflow из пользовательского интерфейса

Как остановить/убить текущую задачу в пользовательском интерфейсе Airflow? Я использую LocalExecutor. Даже если я использую CeleryExecutor, как я могу убить/остановить запущенную задачу?

Ответ 1

На экране DAG вы можете увидеть запущенные задачи:

enter image description here

пример

В "Недавних задачах" нажмите значок выполнения, и Airflow автоматически запустит поисковый запрос с фильтрами для идентификатора и состояния Dag, равными "выполняется", и отобразит результаты на экране "Экземпляры задач" (вы можете найти его вручную на вкладке "Обзор"). > Экземпляры задач).

Там вы можете выбрать представленные задачи и установить их в другое состояние или удалить их.

Обратите внимание, что если DAG в данный момент работает, планировщик Airflow снова запустит задачи, которые вы удаляете. Поэтому сначала нужно остановить группу DAG, изменив ее состояние, либо остановить планировщик (если вы работаете в тестовой среде).

Ответ 2

от воздушного потока (@villasv)

Не изящно, нет. Вы можете остановить метку (снять отметку как выполняющуюся) и очистить состояния задач или даже удалить их в пользовательском интерфейсе. Фактически выполняемые задачи в исполнителе не будут остановлены, но могут быть уничтожены, если исполнитель поймет, что его больше нет в базе данных.

Ответ 3

Как упоминали Пабло и Хорхе, приостанавливая работу, Даг не остановит выполнение задачи, если выполнение уже началось. Тем не менее, есть способ остановить запущенную задачу из пользовательского интерфейса, но это немного странно.

Когда задача находится в running состоянии, вы можете нажать CLEAR это вызовет job.kill() задача будет установлена в shut_down и сразу же перемещена в up_for_retry следовательно, она остановлена.

Очевидно, что Airflow не предназначался для вас, чтобы очистить задачи в состоянии " Running однако, поскольку Airflow не отключил его, вы также можете использовать его, как я предлагал. Воздушный поток означает CLEAR, чтобы использоваться с failed, up_for_retry и т.д.... Может быть, в будущем сообщество будет использовать эту ошибку (?) И реализовать это как функциональность с помощью кнопки "закрыть задачу".

Ответ 4

Просто установите задачу в невыполненное состояние, чтобы остановить выполнение задачи.

[2019-09-17 23:53:28,040] {logging_mixin.py:82} INFO - [2019-09-17 23:53:28,039] {jobs.py:2695} WARNING - State of this instance has been externally set to failed. Taking the poison pill.
[2019-09-17 23:53:28,041] {helpers.py:240} INFO - Sending Signals.SIGTERM to GPID 20977