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
我的 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