Airflow 如果气流中的DAG有10个任务,但在第5个任务中失败,当再次触发DAG时,如何确保它从第5个任务的中间开始?

Airflow 如果气流中的DAG有10个任务,但在第5个任务中失败,当再次触发DAG时,如何确保它从第5个任务的中间开始?,airflow,directed-acyclic-graphs,Airflow,Directed Acyclic Graphs,我在气流中的DAG中设置了10个任务,计划每30分钟运行一次,所有任务都应该在从1>>2>>3>>4>>5>>到10的流程中运行,假设第5个任务失败如何确保下次触发DAG时,它从第5个任务开始,而不是从第1个任务开始 我希望它应该从5号开始。[1]理想情况下,单个任务的失败不应该要求重新运行整个DAG,而应该是单独的任务。这就是工作流背后的想法[2]我相信这个复杂的需求暗示您试图实现的设计是不正确的。[3] 即使如此,如果您必须不惜任何代价拥有此功能,您也可以尝试在气流中自行构建此功能,方法是从

我在气流中的DAG中设置了10个任务,计划每30分钟运行一次,所有任务都应该在从1>>2>>3>>4>>5>>到10的流程中运行,假设第5个任务失败如何确保下次触发DAG时,它从第5个任务开始,而不是从第1个任务开始


我希望它应该从5号开始。

[1]理想情况下,单个任务的失败不应该要求重新运行整个DAG,而应该是单独的任务。这就是工作流背后的想法[2]我相信这个复杂的需求暗示您试图实现的设计是不正确的。[3] 即使如此,如果您必须不惜任何代价拥有此功能,您也可以尝试在气流中自行构建此功能,方法是从以下方面获取线索:如果我在第5个任务上重试3次,但仍失败,则将立即停止dag运行。dag运行将标记为失败。现在我想当我再次触发DAG时,它会从第3个开始。[4]我能想到的一种方法是通过确定上次运行中第5个任务的状态,跳过(
ShortCircuitOperator
/
BranchPythonOperator
/
AirflowskipeException
)DAG重新运行时的前4个任务。为此,您必须查询Airflow的meta db