气流:改变气流中DAG的crontab时间

时间:2016-05-18 08:48:00

标签: airflow

我有一个DAG每天凌晨3点运行,过去几周运行正常。

我已经更新了现在在7:00运行的日期,但显然最近2天没有运行。我可以看到状态为“正在运行”(绿色)的那两天的任务,但没有触发任何命令。

是否需要做更多的事情来改变DAG的运行时间?

我知道在过去,解决这个问题的一种方法是在元数据库中清理此DAG的任务,并更新start_date,但我宁愿避免再次这样做。

有人有建议吗?

4 个答案:

答案 0 :(得分:9)

要安排dag,Airflow只会查找最后一个execution date并将schedule interval求和。如果这个时间已经过期,它将会运行dag。您不能简单地更新开始日期。 一种简单的方法是修改您的start dateschedule interval,重命名您的dag(例如xxxx_v2.py)并重新部署。

答案 1 :(得分:4)

重命名DAG的另一种解决方案是编辑数据库中所有先前任务实例的task_instance和DAG的DAG运行。要更改的表格分别为dag_rundata<-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命令将先前的作业标记为成功。