Airflow:更改 Airflow 中 DAG 的 crontab 时间

Airflow: changing the crontab time for a DAG in Airflow

我有一个 DAG,它在 3:00 每天 运行 宁,过去几周 运行 没问题。

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

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

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

有人有建议吗?

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

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

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

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

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