본문 바로가기

Data Engineering/Hadoop Ecosystem

[Airflow Master Class] Cron 스케줄

이번 포스팅에서는 Cron 스케줄의 기본 개념에 대해 간단하게 다뤄보고자 한다.
 
우선 Cron 스케줄을 정의하면 다음과 같다.
 

"Task가 실행되어야 하는 시간(주기)을 정하기 위한 다섯 개의 필드로 구성된 문자열"

"{분} {시} {일} {월} {요일}"의 형태로 사용!!

 
기본적으로 위와 같은 형태로 사용하며, 각 필드에는 숫자 뿐만 아니라 특수문자도 들어갈 수 있다.
 
Cron 스케줄에서 사용 가능한 특수문자는 아래와 같다.
 

특수문자의미
*모든 값
-범위 지정
,여러 값 지정
/증가 값 지정
L마지막 값 ({일}, {요일}에만 설정 가능)
* {일}에 L 입력 시, 해당 월의 마지막 일을 의미함
* {요일}에 L 입력 시, 토요일을 의미함
#몇 번째 요일인지 지정

 

그럼 이제 다양한 예시를 통해 Cron 스케줄을 어떻게 해석하는지 감을 잡아보도록 하자!
 

Cron 스케줄의미비고
15 2 * * *매일 02시 15분 
0 * * * *매시 정각 (0시) 
0 0 1 * *매월 1일 0시 0분 
10 1 * * 1매주 월요일 01시 10분* 0: 일요일, 1: 월요일, 2: 화요일, 3: 수요일, 4: 목요일, 5: 금요일, 6: 토요일
0 9-18 * * *매일 09시부터 18시까지 정각마다 
0 1 1,2,3 * *매월 1, 2, 3일에만 01시에 
* /30 * * *30분마다 (0분, 30분) 
10-59/30 * * * *10분부터 30분마다 (10분, 40분) 
10 1 * * 1-5평일에만 01시 10분 

 

Cron 스케줄의미비고
0 */2 * * *2시간마다 (0시, 02시, 04시, ...)ex) 1-23/2 → 01시부터 2시간마다
(01시, 03시, 05시, ...)
0 0 */2 * *짝수 일 0시 0분 
10 1 L * *매월 마지막 일 01시 10분 
10 1 * * 6#3매월 3번째 토요일 01시 10분 

여기까지 해서 Cron 스케줄의 기본 개념과 어떻게 사용하고 해석하는지에 대해 알아보았다.
 
<Reference>
- 김현진님의 인프런 Airflow 마스터 클래스 강의