Airflow는 DAG(Directed Acyclic Graph, 비순환그래프)를 기반으로 연속적인 테스크들을 수행함
이때 DAG에서 중요한 설정 중 하나는 DAG를 실행하는 시간임
어떤 주기로 DAG를 실행할 것인지 중요함
이전 글에서 DAG의 schedule_interval
로 주기를 설정하였음 (이전 글 Airflow 간단하게 실습해보기)
start_date
/ end_date
설정dag = DAG(
dag_id = "interval",
start_date = dt.datetime(2019,1,1),
end_date = dt.datetime(2019,1,5),
)
* * * * *
| | | | |
| | | | |
| | | | |
| | | | Day of week(0-6 | Sun-Sat)
| | | |
| | | Month(1-12)
| | |
| | Day of Month(1-31)
| |
| Hour(0-23)
|
Min(0-59)
dag = DAG(
dag_id = "cron_job",
schedule_interval="* * * * *",
)
프리챗 이름 | 의미 |
---|---|
@once | 1회만 실행 |
@hourly | 매시간 변경시 1회 실행 |
@daily | 매일 자정에 1회 실행 |
@weekly | 매주 일요일 자정에 1회 실행 |
@monthly | 매월 1일 자정에 1회 실행 |
@yearly | 매년 1월 1일 자정에 1회 실행 |
dag = DAG(
dag_id = "macro",
schedule_interval="@daily",
)
import datetime as dt
dag = DAG(
dag_id = "macro",
schedule_interval=dt.timedelta(days=3), # 3일 간격으로 실행
)