我有一个回填DAG,计划每年从01-01-2012到01-01-2018运行,但这只运行于01-01-2012至01-01-2017。为什么直到201-01年才开始运行,如何运行到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如何处理调度。来自docs:
请注意,如果您在一天的schedule_interval上运行DAG,则会在2016-01-01T23:59之后很快触发标记为2016-01-01的运行。换句话说,作业实例在其覆盖的时间段结束后启动。
让我们重复一遍调度程序在开始日期之后,在句点结束时运行您的作业一个schedule_interval。
2018年的运行将在2018年结束后开始,因为那是间隔的结束。