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



我想使用execution_timeout为我的BashOperator设置一定的超时,但我注意到它提高了AirflowTaskTimeout

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

气流是否支持?

Airflow 有一个触发规则的概念。您可以将trigger_rule=one_failedtrigger_rule=all_done传递给下一个任务。您可以有 2 个直接依赖于第一个任务的任务。

例如:

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_rule参数,该参数定义触发生成任务的规则。trigger_rule的默认值为all_success,可以定义为"当所有直接上游任务都成功时触发此任务"。此处描述的所有其他规则都基于直接父任务,并且是在创建任务时可以传递给任何运算符的值:

  • all_success:(默认)所有父项都已成功
  • all_failed:所有父母都处于失败或upstream_failed状态
  • all_done:所有父母都完成了他们的处决
  • one_failed:一旦至少有一个父项失败,就会触发,它不会等待所有父项都完成
  • one_success:一旦至少有一个父母成功就触发,它不会等待所有父母都完成
  • none_failed:所有父母都没有失败(失败或upstream_failed),即所有父母都成功或被跳过
  • dummy:依赖只是为了显示,随意触发

最新更新