我有一个DAG,它每天都在3:00运行,过去几周它一直正常运转。
我现在把日期更新为7:00,但是显然过去两天它没有运行。我可以看到这两天的任务状态为“running”(绿色),但没有触发任何命令。
更改DAG的运行时间需要做其他事情吗?
我知道以前解决这个问题的方法之一是在元数据库中清除此DAG的任务并更新start_date,但我宁愿避免再次执行此操作。
有人有建议吗?
我有一个DAG,它每天都在3:00运行,过去几周它一直正常运转。
我现在把日期更新为7:00,但是显然过去两天它没有运行。我可以看到这两天的任务状态为“running”(绿色),但没有触发任何命令。
更改DAG的运行时间需要做其他事情吗?
我知道以前解决这个问题的方法之一是在元数据库中清除此DAG的任务并更新start_date,但我宁愿避免再次执行此操作。
有人有建议吗?
要调度dag,Airflow只需查找最后一次执行日期
并将计划间隔
相加。如果该时间已过期,则会运行dag。您不能简单地更新开始日期。
一个简单的方法是编辑您的开始日期
和计划间隔
,重命名您的dag(例如xxxx_v2.py)并重新部署它。
除了重命名DAG外,另一种解决方案是编辑数据库中DAG的所有先前任务实例和DAG运行的execution_date
。需要修改的表分别是task_instance
和dag_run
。
这种方法的一个缺点是你将失去通过Web服务器浏览已完成任务日志的能力。
您可以使用相同的DAG。在修改schedule_interval
后,您需要通过airflow backfill -m
命令将先前的作业标记为成功。
schedule_interval
的GitHub讨论:https://github.com/apache/airflow/discussions/25304。 - Prabhatika Vij