作者:盛夏的长安佳人 | 来源:互联网 | 2022-12-09 20:57
我有以下DAG:
default_args = {
'owner': 'Airflow',
'depends_on_past': False,
'start_date': datetime(2018, 07, 19, 11,0,0),
'email': ['me@me.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 5,
'retry_delay': timedelta(minutes=2),
'catchup' : False,
'depends_on_past' : False,
}
with DAG('some_dag', schedule_interval=timedelta(minutes=30), max_active_runs=1, default_args=default_args) as dag:
该dag每30分钟运行一次。它重写表中的数据(全部删除并写入)。因此,如果气流中断了2天,那么在此期间运行所有丢失的dag运行就没有意义了。
但是,以上定义不起作用。气流停止两天后,它仍然尝试运行所有丢失的任务。
我该如何解决?
1> skozz..:
根据文档:https : //airflow.apache.org/scheduler.html#backfill-and-catchup
添加dag.catchup = False
到DAG参数。
添加catchup_by_default = False
到airflow.cfg
取决于您的用例,可以设置一种良好的做法catchup_by_default = False
,然后仅dag.catchup = True
在给定的DAG需要补充时才使用。