0

如果 s3sensor 操作员无法在 s3 位置找到文件,有没有办法可以跳过 dag 中的剩余任务。

我知道我们可以使用短路算子来跳过任务,但我正在寻找一种可以将短路算子和 s3sensor 算子集成在一起的方法。如果没有,那么还有其他方法可以实现吗?先感谢您

4

1 回答 1

0

假设您的意思是当您说“无法在 s3 位置找到文件”时传感器操作员因超时而失败,则有一种隐式方法可以通过 Airflow Scheduler 处理此问题。

您可以使用从BaseSensorOperatorsoft_fail继承的所有传感器操作员可用的参数(所有 S3 传感器都这样做)。如果设置为 True,则当传感器因超时而失败时,传感器操作员将设置为“跳过”状态,而不是设置为“失败”状态。soft_fail

如果下游任务trigger_rule在上游任务设置为“跳过”时不允许它们执行(默认trigger_rule为“all_success” - 更多关于触发规则here),调度程序会将下游任务标记为“跳过”也是。这将继续沿 DAG 传播。

基本上,调度程序查看下游任务trigger_rule并认为它们不应该运行,因为上游任务被“跳过”,然后随后跳过这些任务。

于 2021-11-13T04:12:39.300 回答