15

我有一个每天 3:00 运行的 DAG,过去几周运行良好。

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

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

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

有人有建议吗?

4

4 回答 4

14

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

于 2016-06-25T12:31:27.407 回答
5

重命名 DAG 的另一种解决方案是编辑execution_date数据库中所有先前任务实例和 DAG 运行的 DAG。要更改的表分别是task_instancedag_run

这种方法的缺点之一是您将无法通过网络服务器浏览已完成任务的日志。

于 2017-01-09T02:06:41.100 回答
1

David,
1。您还可以通过 Experimental REST API 删除 dag。删除 DAG
2. 更改所需的start_date.
3. 并添加相同的 DAG。

于 2019-05-20T14:16:17.063 回答
1

您可以使用相同的 dag。修改后schedule_interval,需要通过airflow backfill -m命令将之前的作业标记为成功。

于 2020-07-24T09:33:07.713 回答