Airflow: простой DAG с одной задачей никогда не завершается

Я сделал очень простой DAG, который выглядит так:

from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator

cleanup_command = "/home/ubuntu/airflow/dags/scripts/log_cleanup/log_cleanup.sh "

dag = DAG(
'log_cleanup',
description='DAG for deleting old logs',
schedule_interval='10 13 * * *',
start_date=datetime(2018, 3, 30),
catchup=False,
)

t1 = BashOperator(task_id='cleanup_task', bash_command=cleanup_command, dag=dag)

Задача завершается успешно, но, несмотря на это, DAG остается в состоянии «выполняется». Любая идея, что может вызвать это. На приведенном ниже снимке экрана показана проблема с работающей группой DAG. Более ранние запуски завершены только потому, что я вручную помечаю статус как успешный. [Редактировать: изначально я написал: «Предыдущие прогоны завершены только потому, что я вручную установил статус «Выполняется».]

Снимок экрана, показывающий, что статус задачи завершен, но DAG все еще работает


person Wessi    schedule 02.04.2018    source источник


Ответы (1)


Более ранние запуски завершены только потому, что я вручную установил статус «Выполняется».

Вы уверены, что ваш планировщик работает? Вы можете начать с $ airflow scheduler и проверить командную документацию планировщика. приходится вручную ставить задачи на выполнение.

Ваш код здесь кажется хорошим. Одна вещь, которую вы можете попробовать, — это перезапустить планировщик.

В базе данных метаданных Airflow конечное состояние выполнения DAG отключено от конечного состояния выполнения задачи. Я видел, как это случалось раньше, но обычно это разрешается в следующем цикле планировщика, когда он понимает, что все задачи в выполнении DAG достигли конечного состояния (успешно, не удалось или пропущено).

Вы используете LocalExecutor, SequentialExecutor или что-то еще здесь?

person Taylor Edmiston    schedule 14.04.2018
comment
Я сделал крупную опечатку. Я хотел сказать, что вручную установил статус успеха. В противном случае он никогда не остановится. Я уверен, что планировщик работает, как и многие другие DAGS. Я использую LocalExecutor. - person Wessi; 15.04.2018
comment
Хм, это странно. Вы вручную установили успешное состояние задачи или успешное выполнение DAG? Если вы замените bash_command чем-то тривиальным, например uptime, вы получите тот же результат? - person Taylor Edmiston; 15.04.2018
comment
Я думаю, что нашел ошибку. У меня было две DAG с одинаковым именем. Однако только один из них появился в графическом интерфейсе, но я думаю, что это как-то испортило статус. Спасибо за вашу помощь. - person Wessi; 23.04.2018