반응형
schedule_interval
Airflow에서 Dag들이 실행하는데 정시에 실행이 되지않고 약간의 초가 지난뒤에 실행되는걸 볼수있다.
Run: ... 이 부분을 확인할 것
이유는
with models.DAG(
MAIN_DAG_ID,
default_args=default_args,
schedule_interval='*/30 * * * * *',
start_date=datetime(2021, 10, 12, 0, 0, 0),
catchup=False,
tags=["hyper-dmp", "export", "trait", "ga", "dynamic_segment"],
) as dag:
...
property 중 schedule_interval 값을 6자리로 유지하면 안된다.
5자리 cron expression식으로 쓸것.
그러면 원했던 시간에 실행되는 것을 볼 수 있다.
다음으로
start_date
이 속성은 현재 시간보다 앞서나가면 실행이 안된다.
예약의 조건으로 사용하거나
catchup=true속성으로 지난 시간들의 모든 schedule을 가져올때 사용하던지 해야한다.
위 코드에 없는
execution_time
해당 부분을 dag이 실행될때 부여되는 속성이다.
이상하게도 schdule_interval을 6자리 할때도 execution_time은 정확하게 부여되었다.
중요한건 해당 execution_time이 실행될때 바로 전 타임 execution_time을 확인할 수 있다는 것이다.
예를들어
현재시간 : 13:00
with models.DAG(
MAIN_DAG_ID,
default_args=default_args,
schedule_interval='*/30 * * * * *',
start_date=datetime(2021, 10, 12, 0, 0, 0),
catchup=False,
tags=["hyper-dmp", "export", "trait", "ga", "dynamic_segment"],
) as dag:
위 코드로 현재시간에 실행된다면 execution_time값은 무엇일까 ?
답은
12:30
이다.
누군가의 설명에 따르면 schedule_interval 간격마다 바로 전 execution_time을 실행한다
로 이해하라고 되어있었다.