Apache 气流调度程序未按预期每月触发一次任务
Apache airflow scheduler not triggering once in a month task as expected
这是 dag,我想在每个月的固定日期执行,截至目前我一直在每个月的 18 日执行。
但是任务每天都会被调度程序触发。 catchup_by_default = False
在 airflow.cfg 文件中设置为 false
default_args = {
'owner': 'muddassir',
'depends_on_past': True,
'start_date': datetime(2021, 3, 18),
'retries': 1,
'schedule_interval': '0 0 18 * *',
}
图片 1
图 2
图 3
图 4
您在 default_args
中提到了 schedule_interval
,这不是安排 DAG 的方式。 default_args 实际上应用于任务,因为它们被传递给 Operators 而不是 DAG 本身。
您可以按如下方式修改您的代码,只需从 default_args 中删除 schedule_interval 并传递它在 DAG 实例 中如下所示,您可以将 catchup 标志设置为 False 以避免任何回填:
# assuming this is how you initialize your DAG
dag = DAG('your DAG UI name', default_args=default_args, schedule_interval = '0 0 18 * *', catchup=False)
这是 dag,我想在每个月的固定日期执行,截至目前我一直在每个月的 18 日执行。
但是任务每天都会被调度程序触发。 catchup_by_default = False
在 airflow.cfg 文件中设置为 false
default_args = {
'owner': 'muddassir',
'depends_on_past': True,
'start_date': datetime(2021, 3, 18),
'retries': 1,
'schedule_interval': '0 0 18 * *',
}
图片 1
图 2
图 3
图 4
您在 default_args
中提到了 schedule_interval
,这不是安排 DAG 的方式。 default_args 实际上应用于任务,因为它们被传递给 Operators 而不是 DAG 本身。
您可以按如下方式修改您的代码,只需从 default_args 中删除 schedule_interval 并传递它在 DAG 实例 中如下所示,您可以将 catchup 标志设置为 False 以避免任何回填:
# assuming this is how you initialize your DAG
dag = DAG('your DAG UI name', default_args=default_args, schedule_interval = '0 0 18 * *', catchup=False)