У меня есть резервный DAG, который планируется запускать ежегодно с 01.01.2012 по 01.01.2018, но он работает только с 01.01.2012 по 01.01.2017. Почему это не работает до 01.01.2018 и как заставить его работать до 2018 года.
Вот код, который я использовал в DAG:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2012,1,1),
'end_date': datetime(2018,1,1),
'email': ['[email protected]'],
'email_on_failure': True,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(seconds=5)
}
dag = DAG(
dag_id='SAMPLE_LOAD',schedule_interval= '@yearly',default_args=default_args,catchup=True,max_active_runs=1, concurrency=1)
Это связано с тем, как Airflow обрабатывает планирование. Из документы:
Обратите внимание, что если вы запускаете группу обеспечения доступности баз данных с интервалом schedule_interval в один день, запуск с отметкой 2016-01-01 будет запущен вскоре после 2016-01-01T23: 59. Другими словами, экземпляр задания запускается по окончании периода, на который он распространяется.
Давайте повторим это. Планировщик запускает ваше задание через один schedule_interval ПОСЛЕ даты начала, в КОНЕЦ периода.
Ваш забег на 2018 год начнется по окончании 2018 года, поскольку это конец интервала.