Programming > Spring Framework

Schedule Cron Tab 표현식

Cron 표현식

왼쪽부터 순서대로 설정하며 space로 구분한다.

순서 필드명 값의 범위 사용되는 특수문자
1 초 (Second) 0 ~ 59 , - * /
2 분 (Minutes) 0 ~ 59 , - * /
3 시 (Hours) 0 ~ 23 , - * /
4 일 (Day) 1 ~ 31 , - * / ? L W
5 월 (Month) 1 ~ 12 or JAN ~ DEC , - * /
6 요일 (Week) 1 ~ 7 or SUN ~ SAT , - * / ? L #
7 연도 (Year) empty or 1970 ~ 2099 , - * /

 

특수문자 의미

기호 의미 설명
* 모든 값을 의미 seconds 가 * 이면 매초마다, minutes면 매분, hours면 매시간마다를 의미한다.
? 해당 항목을 사용하지 않음 Day 나 Month 에 ? 를 설정한 경우 일이나 달을 지정하지 않는다는 의미
- 기간을 설정한다.

minutes에 45-50 이면 45,46,47,48,49,50분에 동작한다.

hours에 12-14 면 12,13,14시에 동작한다.

, 값을 지정해 나열시 사용 hours에 4,9,15 면 4시,9시,15시에 동작한다.
/ 시작과 반복간격을 지정

seconds에 0/10 이면 0초에 시작해 15초마다 동작

seconds에 0/30 이면 0초에 시작해 30초마다 동작

minutes에 10/10 이면 10분에 시작해서 10분마다 동작

L

마지막 기간에 동작

day of month, day of week에서만 사용

day of month 에서 사용하면 해당월의 마지막날에 동작

day of week 에서 사용하면 토요일에 동작한다.

W

가장 가까운 평일에 동작

day of month 에서만 사용

15W로 설정 : 15일이 평일이면 15일에 동작

15W로 설정 : 15일이 토요일 이면 가까운 평일인 14일인 금요일에 동작

15W로 설정 : 15일이 일요일 이면 가까운 평일인 16일인 월요일에 동작

LW L과 W의 조합 그달의 마지막 평일에 동작한다.
#

몇째주(뒤)의 무슨요일(앞)을 설정

day of week에 사용

6#3 이면 3번째 주 금요일에 동작

3#2 이면 2번째 주 화요일에 동작

4#2 이면 2번째 주 수요일에 동작

 

사용 예제

cron 표현식 동작 내용
0/1 * * * * ? 매 초마다 실행
0/10 * * * * ? 10초 마다 실행 (0초시작해서)
30/30 * * * * ? 30초 마다 실행 (30초시작해서)
0 * * * * ? 매분 0초에 실행 (1분마다 실행)
0 0/5 * * * ? 5분 마다 실행 (0분시작)
0 12 10 * * ? 매일 10시 12분에 실행
0 12 10 * * ? 2018 2018년 동안만 매일 10시 12분에 실행
0 * 14 * * ? 매일 14:00에 시작해서 매분마다 실행하고 14:59분에 끝남(15:00에는 실행 안함)
0 0/5 14 * * ? 매일 14:00시 0분에 시작해서 5분마다 실행하고 14:55분에 끝남
0 0/10 14,18 * * ?

매일 14:00시에 시작해 10분마다 실행하고 14:55분에 끝나고

매일 18:00시에 시작해 10분마다 실행하고 18:55분에 끝난다.

0 0-5 14 * * ? 매일 14:00시 0분에서 5분사이 분마다 실행한다. 즉 0,1,2,3,4,5분에 실행
0 10,44 14 ? 3 WED 3월동안 매주 수요일 14:10분과 14:44분에 실행
0 15 10 ? * MON-FRI 월요일서 금요일까지(토,일제외) 10:15분에 실행
0 15 10 15 * ? 매월 15일 10:15분에 실행
0 15 10 L * ? 매월 말일 10:15분에 실행
0 15 10 ? * 6L 매월 마지막 금요일(6) 10:15분에 실행
0 15 10 ? * 6L 2018-2020 1018년 부터 2020년까지 매월 마지막 금요일 10:15분에 실행
0 15 10 ? * 6 3 매월 세번째 금요일 10:15분에 실행
0 11 11 11 11 ? 11월 11일 11:11분마다 실행