Часовая пробежка в Airflow - PullRequest
       4

Часовая пробежка в Airflow

0 голосов
/ 10 января 2020

My Dag

{
    'owner': 'airflow',
    'start_date': datetime(2020, 1, 10, 7, 1, 00),
    'depends_on_past': False,
    'catchup_by_default': False,
}

dag = DAG('Hourly_test_2', schedule_interval='0 * * * *', default_args=default_args)

Запускается каждый час, но на графике в виде дерева показывает на 1 час меньше. Пример в древовидном графике показывает время 8 утра, но фактическое время 9 часов утра. Как синхронизировать c оба раза?

Задание должно выполняться каждый час, а час должен совпадать с текущим часом в древовидном представлении.

enter image description here

Ответы [ 2 ]

2 голосов
/ 10 января 2020

Вот как график воздушного потока. Проверьте эту часть документации планировщика.

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

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

Ссылка: https://airflow.apache.org/docs/stable/scheduler.html

2 голосов
/ 10 января 2020

Это не проблема синхронизации времени, это происходит из-за start_date и schedule_interval, воздушный поток по умолчанию вычисляет, сколько раз он должен был быть выполнен от start_date до текущей даты, и запускает прогон DAG для любого интервала, который не был выполненная проверка здесь .

В вашем случае дата начала - 7:01, а в соответствии с вашим schedule_interval интервалы выполнения - 8:00, 9:00, 10:00 ...

Вот почему в 8:00 запускается DAG, вы можете отключить это поведение по умолчанию, установив параметр catchup = False в своем определении dag.

dag = DAG('Hourly_test_2', catchup=False, schedule_interval='0 * * * *', default_args=default_args)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...