首页 > 解决方案 > Apache Airflow 忽略失败的任务

问题描述

假设 2 次重试后,有没有办法忽略失败的任务并继续下一步?

例子;

t1= SomeOperator(...)
t2= SomeOperator(...)

t2.set_upstream(t1)


# if t1 fails re-try 2 times and proceed to t2

# else if t1 success then proceed to t2 as usual 

标签: airflow

解决方案


看看气流触发规则

默认情况下,每个任务的触发规则是'all_success',这意味着该任务只有在所有直接上游任务都成功后才会执行。

您在这里需要的是触发规则'all_done',这意味着所有直接上游任务都已完成,无论它们是失败还是成功。

但是要小心,因为这也意味着如果一个不是直接上游的任务失败,并且该任务之后的任务被标记为'upstream_failed',具有此触发规则的任务仍将被执行。

因此,在您的情况下,您必须retries=2为 t1 和trigger_rule='all_done't2 设置。


推荐阅读