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