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 트리거 규칙이다.
'컨테이너·워크플로우 자동화 > Airflow로 워크플로우 자동화하기' 카테고리의 다른 글
| Airflow Task 상태를 기반으로 ETL 적재 성공·실패를 판단하는 방법 (0) | 2026.02.03 |
|---|---|
| Airflow PythonOperator에서 params로 값을 전달하고 함수에서 사용하는 방법 (0) | 2026.02.03 |
| [트러블 슈팅] Airflow + PostgreSQL에서 KST 시간이 UTC처럼 저장되던 문제 (0) | 2026.01.23 |
| [트러블슈팅] Airflow에서 pipeline 패키지 인식하지 못했던 이유와 해결 과정 (0) | 2026.01.23 |
| [트러블슈팅] BranchOperator 이후 Task가 Skipped 되는 이유와 trigger_rule (1) | 2026.01.22 |