似乎之前已经有关于这个问题的讨论。
这是因为使用catchup=False时,调度器会根据文档中的指示“仅为最新的时间间隔创建DAG运行”。
似乎Airflow没有原生解决这个问题的方法。
人们一直在使用什么样的解决方法?也许像检查当前时间是否接近下一个执行日期这样的方法?
https://groups.google.com/g/cloud-composer-discuss/c/JGtmAd7xcsM?pli=1
当我部署一个DAG在特定时间运行(比如每天早上9点),Airflow会立即在部署时运行该DAG。dag = DAG(
'My Dag',
default_args=default_args,
schedule_interval='00 09 * * *',
start_date = datetime(2021, 1, 1),
catchup=False # dont run previous and backfill; run only latest
)
这是因为使用catchup=False时,调度器会根据文档中的指示“仅为最新的时间间隔创建DAG运行”。
https://airflow.apache.org/docs/apache-airflow/stable/dag-run.html
我想要实现的是,即使最新的间隔时间到了,我也不希望DAG运行开始。我希望在下一次时钟敲响9点之前什么都不会发生。似乎Airflow没有原生解决这个问题的方法。
人们一直在使用什么样的解决方法?也许像检查当前时间是否接近下一个执行日期这样的方法?
start_date
设置为动态的,比如在https://marclamberti.com/blog/apache-airflow-best-practices-1/中。 - user3240688