Я не верю, что есть триггерное правило для успеха и неудачи.То, что вы могли бы сделать, это настроить дублирующие задачи, одну с правилом триггера all_success
и одну с правилом триггера all_failed
.Таким образом, дублирующее задание запускается только в том случае, если родители, опережающие его, терпят неудачу / успешно.
Я включил приведенный ниже код, чтобы вы могли легко проверить ожидаемые результаты.
Итак, скажем, у вас есть три задачи.
- задача 1 - ваш успех / неудача
- задача 2 - ваша задача только для успеха
задача 3 - ваша ошибка только
#dags/latest_only_with_trigger.py
import datetime as dt
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from airflow.utils.trigger_rule import TriggerRule
dag = DAG(
dag_id='stackoverflowtest',
schedule_interval=dt.timedelta(minutes=5),
start_date=dt.datetime(2019, 2, 20)
)
task1 = DummyOperator(task_id='task1', dag=dag)
task2 = DummyOperator(task_id='task2', dag=dag,
trigger_rule=TriggerRule.all_success)
task3 = DummyOperator(task_id='task3', dag=dag
trigger_rule=TriggerRule.all_failed)
###### ORCHESTRATION ###
task2.set_upstream(task1)
task3.set_upstream(task1)
Надеюсь, это поможет!