트리거 규칙
기본적으로 Airflow는 모든 상위 Task이 성공해야 다음 Task를 실행한다. 다만 필요한 경우 task 정의 시 trigger_rule 변수를 이용해 Task 실행 규칙을 지정할 수 있다.
옵션
trigger_rule로 지정할 수 있는 값은 다음과 같다.
값 | 동작 방식 |
all_success | 모든 상위 Task 실행 성공 |
all_failed | 모든 상위 Task가 실행 실패, 또는 upstream_failed 상태 |
all_done | 모든 상위 Task 실행 완료 |
one_failed | 하나 이상의 상위 Task 실패. 모든 상위 Task의 실행 완료를 대기하지 않는다. |
one_success | 하나 이상의 상위 Task 성공. 모든 상위 Task의 실행 완료를 대기하지 않는다. |
none_failed | 모든 상위 Task가 실패 또는 upstream_failed가 아니다. 모든 Task가 성공했거나 건너뛴 경우. |
none_failed_min_one_success | 모든 상위 Task가 실패 또는 upstream_failed가 아니고 하나 이상의 상위 Task가 성공 . |
none_skipped | 건너뛴 상위 Task 없음. 모든 Task가 성공, 실패 또는 upstream_failed 상태여야 한다. |
always | Task 종속성 없이 항상 실행 |
예시
Task 정의 시 아래와 같이 전달하면 된다.
task_empty = EmptyOperator(
task_id='task_empty',
trigger_rule='always',
dag=dag
)
트리거 규칙을 always로 설정하면 상위 Task가 실패해도 다음 Task를 실행시킨다.
참고 문서
https://airflow.apache.org/docs/apache-airflow/2.2.5/concepts/dags.html?#trigger-rules