Как остановить/убить текущую задачу в пользовательском интерфейсе Airflow? Я использую LocalExecutor
.
Даже если я использую CeleryExecutor
, как я могу убить/остановить запущенную задачу?
Как остановить/убить задачи Airflow из пользовательского интерфейса
Ответ 1
На экране DAG вы можете увидеть запущенные задачи:
В "Недавних задачах" нажмите значок выполнения, и 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