Airflow DAG Запланированная дата на неделю позже - PullRequest
1 голос
/ 06 мая 2019

У меня запланирован запуск DAG на 10AM каждый понедельник. Вот мое определение dag

DAG = models.DAG(
  dag_id="etl", schedule_interval="0 10 * * 1", start_date=datetime(2018, 10, 1), 
  default_args=args
)

latest_only = LatestOnlyOperator(task_id="latest", dag=DAG)

extract = PythonOperator(
task_id="extract", python_callable=extract,  dag=DAG)

extract.set_upstream(latest_only)

Он срабатывает в 10AM каждый понедельник. Это бежало сегодня (05/06/2019), но у него запланированная дата как 2019-04-29 14:00:00 Экземпляр задачи имеет следующую дату

execution_date : 2019-04-29T14:00:00+00:00
start_date : 2019-05-06 14:19:48.527488+00:00
end_date : 2019-05-06 14:19:54.225001+00:00

В прошлый понедельник (4/29) он работал нормально с правильными датами, а в истории даг он теперь показывает 2 прогона 4/29. Что может быть причиной этого?

Ответы [ 2 ]

3 голосов
/ 07 мая 2019

В документации по воздушному потоку есть глава о планировании, которая гласит:

Обратите внимание, что если вы запустите группу обеспечения доступности баз данных с параметром schedule_interval, равным одному дню, запуск с отметкой 2016-01-01 будет запущен вскоре после 2016-01-01T23: 59. Другими словами, экземпляр задания запускается после окончания периода, который он охватывает.

Давайте повторим это Планировщик запускает вашу работу один schedule_interval ПОСЛЕ даты начала, в КОНЦЕ периода.

Вы испытываете именно это: сегодня (2019-05-06) DagRun создается для последнего "завершенного" интервала, то есть недели, начинающейся с 2019-04-29.

Если подумать об этом, это может помочь: если вы хотите периодически обрабатывать некоторые данные, вам нужно начать обрабатывать их после , когда данные готовы к этому периоду.

2 голосов
/ 07 мая 2019

Воздушный поток составляет dag в конце каждого интервала со временем выполнения в качестве начала этого интервала.Так обычно execute_time = schedule_time-interval .

Например, в вашем dag последний интервал был 2019-04-29T14: 00: 00 до 2019-05-06T14: 00: 00и его выполнение запланировано только на 2019-05-06T14: 00: 00 со временем выполнения 2019-04-29T14: 00: 00.Это обычная работа воздушного потока.Как вы упомянули в своем вопросе, неизвестно, как ваш даг работал с 2019-04-29T14: 00: 00 до 6 мая, 2 часа дня.Возможно, вы изменили интервал дага или сделали ручной запуск.

...