Airflow 为什么在不重命名dag的情况下更改开始日期?
我是一名数据工程师,定期与airflow合作 使用新的开始日期重新部署DAG时,最佳做法如下所示: 不更改开始日期+间隔:运行DAG后,调度程序数据库包含该DAG运行的实例。如果更改开始日期或间隔并重新部署,计划程序可能会混淆,因为间隔不同或开始日期早于此。处理此问题的最佳方法是在更改开始日期或间隔(即my_DAG_v1和my_DAG_v1)后立即更改DAG的版本。这样,旧版本的历史信息也得以保存 但是,在删除所有以前的DAG和任务运行后,我尝试重新部署具有新开始日期的DAG。它按预期工作了一天(使用新的开始日期),然后又开始使用旧的Airflow 为什么在不重命名dag的情况下更改开始日期?,airflow,airflow-scheduler,Airflow,Airflow Scheduler,我是一名数据工程师,定期与airflow合作 使用新的开始日期重新部署DAG时,最佳做法如下所示: 不更改开始日期+间隔:运行DAG后,调度程序数据库包含该DAG运行的实例。如果更改开始日期或间隔并重新部署,计划程序可能会混淆,因为间隔不同或开始日期早于此。处理此问题的最佳方法是在更改开始日期或间隔(即my_DAG_v1和my_DAG_v1)后立即更改DAG的版本。这样,旧版本的历史信息也得以保存 但是,在删除所有以前的DAG和任务运行后,我尝试重新部署具有新开始日期的DAG。它按预期工作了一天
原因是什么?如果可以,请深入查看。气流将有关过去运行的所有信息保存在表中
dag\u run
清除以前的dag运行时,这些条目将从数据库中删除。因此,气流将此dag视为新dag,并在指定时间开始
气流检查最后一次dag执行时间(start\u date
last run),并添加您在schedule\u interval
中指定的timedelta
对象
如果您在清除dag运行后仍有困难,您可以做以下几件事:
schedule\u interval
中使用crontab表达式气流的
调度程序
正在进行工程设计。它有其合理的细微差别,并且已经被提出。在此之前,您必须定期重新启动它(对于几乎所有长时间运行的进程都是如此)。至少改变start\u date
或schedule\u interval
需要立即重新启动(或者你会遇到一些惊喜)我做了3个<代码>计划间隔='0 4***'我有意避免1。同样2也没有意义,因为我第一天就让它工作了,然后它就不正常了。