【问题标题】:Apache Airflow: Conditionals running before triggeredApache Airflow:触发前运行的条件
【发布时间】:2021-08-25 03:14:44
【问题描述】:

我的 DAG 有问题。我想将其设置为如果一个任务失败,另一个任务发生并且整个运行不会失败。

代码是专有的,所以我不能发布代码 sn-p。很抱歉!

任务0 >> [任务1,任务2] 任务1 >> 任务1a

如果 Task1 失败,我希望 task2 执行。如果 task1 成功,我希望 task1a 执行。我当前的 task2 代码如下所示:

task2 = DummyOperator(
   task_id='task2',
   trigger_rule='one_failed',
   dag=dag,
)

我一直在玩 trigger_rule ,但它在 task1 之前一直运行。它会立即运行。

【问题讨论】:

  • 如果解决了您的问题,请考虑投票 :)

标签: airflow


【解决方案1】:

您的接线员很好。依赖错误。

Task0 >> [Task1, Task2] >> Task1a 表示 Task1 可以与 Task2 并行运行,并且根据其直接上游任务检查 Task2 的 trigger_rule='one_failed'。这意味着该规则是根据Task0 状态而不是Task1 检查的。

要解决您的问题,您需要进行更改:

Task0 >> Task1 >> Task2 
Task1 >> Task1a

【讨论】:

    猜你喜欢
    • 2018-07-01
    • 2017-11-29
    • 2022-06-24
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多