我有一个DAG每天凌晨3点运行,过去几周运行正常。
我已经更新了现在在7:00运行的日期,但显然最近2天没有运行。我可以看到状态为“正在运行”(绿色)的那两天的任务,但没有触发任何命令。
是否需要做更多的事情来改变DAG的运行时间?
我知道在过去,解决这个问题的一种方法是在元数据库中清理此DAG的任务,并更新start_date,但我宁愿避免再次这样做。
有人有建议吗?
答案 0 :(得分:9)
要安排dag,Airflow只会查找最后一个execution date
并将schedule interval
求和。如果这个时间已经过期,它将会运行dag。您不能简单地更新开始日期。
一种简单的方法是修改您的start date
和schedule interval
,重命名您的dag(例如xxxx_v2.py)并重新部署。
答案 1 :(得分:4)
重命名DAG的另一种解决方案是编辑数据库中所有先前任务实例的task_instance
和DAG的DAG运行。要更改的表格分别为dag_run
和data<-data[c(8,1:7)]
。
这种方法的一个缺点是,您将无法通过网络服务器浏览已完成任务的日志。
答案 2 :(得分:0)
大卫,
1.您也可以通过实验性REST API删除dag。 deleting a DAG
2.更改所需的start_date
。
3.并添加相同的DAG。
答案 3 :(得分:0)
您可以使用相同的dag。修改schedule_interval
后,您需要通过airflow backfill -m
命令将先前的作业标记为成功。