我们正在运行大量的 DAGS,因此每个日历日期都有数千个任务实例。我们有零星的失败日期,我们正在尝试尽可能高效地重新运行这些日期。
我们尝试使用的方法是使用 UI 的搜索功能来缩小失败的单个日期的完整列表,然后单击“删除”(据我所知,这相当于“清除”任务实例),如图所示这个截图。
我们使用 catchup = True 来自动重新运行已清除的日期,但在检查了应重新运行这些已删除日期的各个 DAG 后,日期根本不再出现。即使处于“清除”或“运行”状态也不行。日期根本不存在。例如,我们删除了 3/30/2020 和 3/31/2020,因此在树视图中,日期从 3/29/2020 跳转到 4/01/2020。
使用 UI(特别是从搜索结果页面)删除/清除实例时,是否有其他设置或需要记住的事项?
在 Airflow 2.5.0 上遇到同样的问题。我发现了两个可能的修复方法。
选项 1:回填 DAG 运行
回填日期的运行应该会恢复丢失的任务。命令示例:
airflow dags backfill my_dag -s 2024-01-10 -e 2022-01-11
选项 2:删除 DAG
请注意,此选项具有破坏性。如果要追溯地重新运行整个 DAG 并且有能力承担,那么使用 UI 删除整个 DAG 也将解决该问题。删除后,DAG 将重新生成,所有任务都正确填充。