1. trigger_rule 이란?
Airflow에서 trigger_rule은 특정 task가 언제 실행될지 결정하는 중요한 설정입니다. 일반적으로 task는 이전 task들이 성공했을 때만 실행되지만, 다양한 시나리오에서 유연하게 작업을 제어할 수 있도록 여러 trigger_rule 옵션을 제공합니다.
2. trigger_rule 옵션
| Trigger Rule 옵션 | 의미 |
|---|---|
| all_success | 모든 upstream task가 성공한 경우 실행 |
| all_failed | 모든 upstream task가 실패한 경우 실행 |
| all_done | 모든 upstream task의 상태와 관계없이 실행 (성공, 실패, 스킵 등) |
| one_success | 하나의 upstream task라도 성공한 경우 실행 |
| one_failed | 하나의 upstream task라도 실패한 경우 실행 |
2. 샘플코드

from airflow.decorators import dag, task, task_group
from datetime import datetime
default_args = {
'owner': 'jinwoo',
'start_date': datetime(2024, 11, 10), # 시작 날짜
# 'end_date': datetime(2024, 11, 11), # 시작 날짜
}
@dag(
# schedule_interval="0 4 * * *", # UTC
schedule_interval=None,
default_args=default_args,
tags=['task_test']
)
def dependency_test():
@task
def task1(**context):
print('task1')
@task(trigger_rule='all_failed')
def task2(**context):
print('task2')
@task(trigger_rule='all_done')
def task3(**context):
print(task3)
task1() >> [task2(),task3()]
dag = dependency_test()