컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

trigger_rule="all_done" 이란 무엇인가

Data Jun 2026. 2. 3. 13:22

Airflow에서 태스크는 기본적으로 이전 태스크가 성공해야만 실행됩니다.
이 기본 동작을 바꾸는 옵션이 바로 trigger_rule입니다.

 

그중 trigger_rule="all_done"은 의미가 아주 명확합니다.
이전 태스크들이 성공이든 실패든, “끝나기만 하면” 실행하라는 규칙입니다.

 

이를 비유하면 이런 느낌입니다.
앞선 작업 결과가 잘됐는지는 중요하지 않고,
회의가 끝났다는 사실 자체가 다음 회의를 여는 조건인 셈입니다.

 

예를 들어, 데이터 적재 태스크가 실패하더라도
로그 정리, 알림 전송, 정리(clean-up) 작업은 반드시 실행되어야 할 때가 있습니다.
이럴 때 all_done이 가장 적합합니다.

PythonOperator(
    task_id="cleanup_task",
    python_callable=cleanup,
    trigger_rule="all_done"
)

이렇게 설정하면,

  • upstream 태스크 성공 → 실행
  • upstream 태스크 실패 → 실행
  • 일부만 성공 → 실행

즉, 상태와 무관하게 실행 보장이 핵심입니다.

 

언제 쓰는 게 좋은가

  • 실패 여부와 관계없이 반드시 실행되어야 하는 작업
  • 리소스 정리, 임시 파일 삭제
  • 실패 알림, 메트릭 수집

trigger_rule="all_done"은 이전 태스크의 성공 여부와 관계없이, 완료되기만 하면 실행되는 Airflow 트리거 규칙이다.