Airflow 如果有足够多的任务失败,如何停止dag?

Airflow 如果有足够多的任务失败,如何停止dag?,airflow,Airflow,如果有足够多的特定任务失败,是否有方法停止气流dag?有一个任务集合,所有任务都为不同的值做相同的事情 对于数据集列表中的数据集: task\u 1=bash运算符(task\u id=“task\u 1\u%s”%dataset[“id”],…) task\u 2=bash运算符(task\u id=“task\u 2\u%s”%dataset[“id”],…) task\u 3=bash运算符(task\u id=“task\u 3\u%s”%dataset[“id”],…) 任务1>>任务

如果有足够多的特定任务失败,是否有方法停止气流dag?有一个任务集合,所有任务都为不同的值做相同的事情

对于数据集列表中的数据集:
task\u 1=bash运算符(task\u id=“task\u 1\u%s”%dataset[“id”],…)
task\u 2=bash运算符(task\u id=“task\u 2\u%s”%dataset[“id”],…)
task\u 3=bash运算符(task\u id=“task\u 3\u%s”%dataset[“id”],…)
任务1>>任务2>>任务3
如果,假设task_2的任何5个实例失败,则意味着task_2所用的底层进程(与特定task实例中正在处理的单个数据集相反)存在更大的问题,并且该task的任何其他实例都可能无法成功,因此,整个dag应该停止或跳到稍后的/可选的分支任务


有没有办法通过在任务声明中设置一些内容来实现这一点?对于这种情况,还有其他常见的解决方法吗?

一种方法可能是插入BranchPythonOperator或ShortCircuitOerator,并将触发器逻辑设计到运算符的python可调用参数中。始终可以访问airflow.models.TaskInstance SQLAlchemy(子)类模型,该类模型存储所有dag运行的任务实例的所有属性。可以使用dag对象上的get_task_instances()方法访问任务实例。(除此之外,可以通过“上下文”访问dag对象。这是python可调用的参数。)

您可以使用设置所需的依赖项。一般来说,如果您的任务失败了n次(其中n是您指定的重试次数),那么DAG运行将失败(以及所有下游任务都是默认的)。@manesioz我的触发器规则问题是没有
某种类型的触发器失败,并且有问题的任务不会重试(在我的案例中,如果他们在个人层面上失败,通常会有一些我想要调查的未捕获的数据问题,而不是从重试中受益的东西(更新的问题,希望能够消除这种混乱))。