【发布时间】:2021-11-12 23:19:36
【问题描述】:
如果 s3sensor 操作员无法在 s3 位置找到文件,我是否可以跳过 dag 中的剩余任务。
我知道我们可以使用短路算子来跳过任务,但我正在寻找一种可以将短路算子和 s3sensor 算子集成在一起的方法。如果没有,那么还有其他方法可以实现吗?提前谢谢你
【问题讨论】:
标签: airflow airflow-2.x
如果 s3sensor 操作员无法在 s3 位置找到文件,我是否可以跳过 dag 中的剩余任务。
我知道我们可以使用短路算子来跳过任务,但我正在寻找一种可以将短路算子和 s3sensor 算子集成在一起的方法。如果没有,那么还有其他方法可以实现吗?提前谢谢你
【问题讨论】:
标签: airflow airflow-2.x
假设您的意思是当您说“无法在 s3 位置找到文件”时传感器操作员因超时而失败,则有一种隐式方法可以通过 Airflow Scheduler 处理此问题。
您可以使用从BaseSensorOperator 继承的所有传感器操作员可用的soft_fail 参数(所有S3 传感器都这样做)。如果soft_fail 设置为 True,则当传感器超时失败时,传感器操作符将设置为“跳过”状态,而不是设置为“失败”状态。
如果下游任务没有trigger_rule 允许它们在上游任务设置为“跳过”时执行(默认trigger_rule 是“all_success”——更多关于触发规则here),调度程序也会将下游任务标记为“已跳过”。这将继续沿 DAG 传播。
基本上,调度程序查看下游任务的trigger_rule 并发现它们不应该运行,因为上游任务被“跳过”,然后随后跳过这些任务。
【讨论】: