Apache Airflow catchup = False;允许最近一次运行

问题描述

据我所知以及我的经验告诉我,在这样的DAG定义中设置 catchup = False
default_args = {
'owner': 'me',"start_date": dt.datetime(2020,8,20),}

with DAG('DB-Update',default_args=default_args,schedule_interval='0 1 * * *',catchup=False,) as dag:
dbupdate = Pythonoperator(task_id='dbupdate',python_callable=dbupdate,depends_on_past=False,wait_for_downstream=False)
每次我们取消暂停该DAG时,

都会导致执行最近的DAG-RUN。一个简单的例子:

  • 23-08-2020 取消暂停达格在00:00
    -> 1. DAG RUN for 22-08-2020 at ca. 00:01 回填
    -> 2. DAG RUN,时间为23-08-2020,确切时间为01:00 正确的时间表
  • 23-08-2020 暂停 DAG在02:00
  • 29-08-2020 取消暂停 DAG在00:00
    -> 1. DAG RUN for 28-08-2020 at ca. 00:01 回填
    -> 2. DAG RUN,时间为08:00,正确时间为29-08-2020 正确的时间表
  • 29-08-2020 暂停 DAG在02:00
    ...

是否存在一种自然的气流方式来防止最近一次的上一次运行(回填)?如果仅将气流用作简单的cron likle调度程序,则我不想看到最近的RUN发生,因为我只希望DAG在取消暂停时按计划运行 strong>它,我根本不希望有任何回填或追赶机制……(甚至对于最近的一个也不是……)

那么有人知道我是否需要对照间隔时间来检查执行时间以防止这种情况发生,或者是否有一种本机的方法

或者我应该像dt.datetime.today()-1day这样使用动态start_date来仅将任务安排在不暂停的那一天吗?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)