Apache Airflow:触发前的条件 运行

Apache Airflow: Conditionals running before triggered

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

该代码是专有的,因此我无法 post 代码片段。非常抱歉!

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

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

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

我一直在玩 trigger_rule 但这使 运行ning 在任务 1 之前。马上 运行 秒。

你的接线员没问题。依赖错误。

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

检查规则

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

Task0 >> Task1 >> Task2 
Task1 >> Task1a