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. 샘플코드


Xixia

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()