Airflow 气流-在不杀死DAG的情况下超时任务

Airflow 气流-在不杀死DAG的情况下超时任务,airflow,Airflow,我想使用execution\u timeout为我的BashOperator设置一个特定的超时,但我注意到它会引发AirflowTaskTimeout 我要寻找的是在超时的情况下执行特定的行为,然后从下一个任务继续DAG。我可以使用bashtimeout,但我正在寻找相同功能的内部气流支持 气流是否支持这一点?气流的概念是。您可以将trigger\u rule=one\u failed或trigger\u rule=all\u done传递到下一个任务。您可以有两个直接依赖于第一个任务的任务 例

我想使用
execution\u timeout
为我的
BashOperator
设置一个特定的超时,但我注意到它会引发
AirflowTaskTimeout

我要寻找的是在超时的情况下执行特定的行为,然后从下一个任务继续DAG。我可以使用bash
timeout
,但我正在寻找相同功能的内部气流支持

气流是否支持这一点?

气流的概念是。您可以将
trigger\u rule=one\u failed
trigger\u rule=all\u done
传递到下一个任务。您可以有两个直接依赖于第一个任务的任务

例如:

task_a >> task_b (trigger_rule='all_success') >> task_d (trigger_rule='one_success')
task_a >> task_c (trigger_rule='all_failed') >> task_d (trigger_rule='one_success')
从文档中:

所有运算符都有一个
trigger\u rule
参数,用于定义触发生成任务的规则。
trigger_rule
的默认值为
all_success
,可以定义为“当所有直接上游任务都成功时触发此任务”。此处描述的所有其他规则均基于直接父任务,是创建任务时可传递给任何操作员的值:

  • all_success
    :(默认)所有父项都已成功
  • all_failed
    :所有父级都处于失败或上游_失败状态
  • all_done
    :所有父项都已执行完毕
  • one_failed
    :在至少一个父级出现故障时立即激发,它不会等待所有父级都完成
  • one_success
    :在至少一个父级成功时触发,它不会等待所有父级都完成
  • none\u failed
    :所有父级均未失败(失败或上游\u失败),即所有父级均已成功或被跳过
  • dummy
    :依赖项只是为了显示,随意触发
气流有一个概念。您可以将
trigger\u rule=one\u failed
trigger\u rule=all\u done
传递到下一个任务。您可以有两个直接依赖于第一个任务的任务

例如:

task_a >> task_b (trigger_rule='all_success') >> task_d (trigger_rule='one_success')
task_a >> task_c (trigger_rule='all_failed') >> task_d (trigger_rule='one_success')
从文档中:

所有运算符都有一个
trigger\u rule
参数,用于定义触发生成任务的规则。
trigger_rule
的默认值为
all_success
,可以定义为“当所有直接上游任务都成功时触发此任务”。此处描述的所有其他规则均基于直接父任务,是创建任务时可传递给任何操作员的值:

  • all_success
    :(默认)所有父项都已成功
  • all_failed
    :所有父级都处于失败或上游_失败状态
  • all_done
    :所有父项都已执行完毕
  • one_failed
    :在至少一个父级出现故障时立即激发,它不会等待所有父级都完成
  • one_success
    :在至少一个父级成功时触发,它不会等待所有父级都完成
  • none\u failed
    :所有父级均未失败(失败或上游\u失败),即所有父级均已成功或被跳过
  • dummy
    :依赖项只是为了显示,随意触发

谢谢,这很有帮助!有没有办法知道上游任务是否超时或“只是”失败?很高兴您发现这很有用。你能投票还是接受它作为答案,请帮助未来的访客?关于另一件事,超时任务将被标记为失败,因此,不幸的是,我们没有现成的。谢谢,这很有帮助!有没有办法知道上游任务是否超时或“只是”失败?很高兴您发现这很有用。你能投票还是接受它作为答案,请帮助未来的访客?关于另一件事,超时任务将被标记为失败,因此,不幸的是,我们没有现成的。