티스토리 뷰

Cron Expression (크론 표현식)은 스케쥴링을 해주는 도구라고 생각하면 된다. linux에서 background process로 특정 job을 주기적으로 실행시키기 위한 용도로 시작되었고 이 개념이 확장되어 Quartz나 Spring에서도 사용되고 있다. 


리눅스 / 유닉스 크론 표현식 : 5자리

순서 항목 사용형태
1 0-59
2 0-23
3 1-31
4 1-12
5 요일 0-6  (일요일=0, 월요일=1...)

Cron Expression은 기본적으로 공백(space)으로 시간을 구분하여 표현한다. (eg. 0 14 * * * : 매일 14시 0분에 동작)

 

Quartz / Spring Scheduler 크론 표현식 : 7자리

순서 항목 사용형태
1 0-59
2 0-59
3 0-23
4 1-31
5 1-12
6 요일 0-6  (일요일=0, 월요일=1...)
7 연도 생략가능

Quartz / Spring Scheduler 는 Linux / Unix 크론 표현식에 초와 연도 설정이 가능한 차이점이 있다

보통 연도는 지정하지 않은 경우가 많으므로 6자리의 크론식이면 초부터 시작한다고 생각하면 된다. 

 

이렇게 숫자만 넣어서 사용할수도 있지만 주기적으로 실행해야 하는 스케쥴러의 용도로는 부적절하다. 따라서 크론 표현식에는 여러가지 옵션들이 존재하며 이는 스케쥴러를 더욱 매끄럽게 세팅할 수 있도록 해준다. 

 

Cron Expression Options & 사용예제

옵션 설명 적용가능항목 예제
* 항상 실행 모든 항목 0 14 * * *  : 매년매월매일(=매일) 14시에 실행
? 조건없음 일, 요일 0 14 10 ? * * : 매일 10시 14분에 실행
/ 시작시간/단위 
시작시간부터 해당 단위간격으로 실행
모든 항목 0/5 : 0부터 5간격으로 실행 
0 0/1 * * * ? : 1분마다 실행
0 0/5 10 * * ? : 매일 10시부터 10시 59분까지 5분마다 실행
- 시작범위-끝범위 : 시작범위부터 끝범위일때 실행 모든 항목 1-3 : 1,2,3 조건일때 실행

0 0-5 10 * * ? : 매일 10시부터 10시 5분까지 매분마다 실행
, 발생시간1,발생시간2 : 발생시간1, 발생시간2 마다 실행 모든 항목 1,3 : 1, 3 조건일때 실행

0 0-5 10,15 * * ? : 매일 10시~10시5분, 15시~15시5분일때 매분마다 실행
L - 일 : 한달의 마지막 날짜 

- 요일 : 마지막주 해당요일 
일, 요일 L : 1월은 31일, 2월은 28 or 29일에 실행
0 15 10 L * ? : 매월 마지막날 10시 15분 실행

1L : 마지막 일요일에 실행,
마지막주가 월요일이 없다면 그전주 월요일에 실행

W 가장 가까운 평일(월-금)에 실행 10W 라고 설정했다면 10일이 월~금 범위라면 해당 날짜에 실행
10일이 토요일이라면 가장 가까운 금요일인 9일에 실행
10일이 일요일이라면 가장 가까운 월요일인 11일에 실행
# 요일#N번째주 : N번째 주 해당 요일에 실행 요일 3#2 : 수요일(3) # 2번째주 = 2번째 주 수요일에 실행

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30