quartz 사용시 스케쥴 cron 형식
quartz 를 사용하여 스케쥴 설정시 croncronExpression 설정이 헷갈릴때가 많다.
가장 보편적으로 사용하는 형태가 다음과 같은 형태일 것이다.
00 30 01 * * ?
간단하게 정리하면 매일 01시 30분에 실행하는 스케쥴이라는 의미이다.
각 자리수의 의미는
* * * * * * *
초 분 시 일 월 요일 년도(생략가능)
- 초(Seconds)
- 분(Minutes)
- 시(Hours)
- 일(Day-of-Month)
- 월(Months)
- 요일(Days-of-Week)
- 연도(Year) - 생략가능
“?”문자는 일(day-of-month)와 요일(day-of-week) 필드에서만 허용되며 값에 상관하지 않는다는 의미.
"*" 문자는 매 단위(시간/분/초 ...)마다 실행한다는 의미.
요일은 일요일부터 1로 표기 (1-일, 2-월, 3-화, 4-수, 5-목, 6-금, 7-토)
몇가지 유용한 예...
1. 매일 매시 10분에 실행
00 10 * * * ?
2. 매주 수요일 13시 10분에 실행
00 10 13 ? * 4
3. 매월 첫번째 토요일 13시 10분에 실행
00 10 13 ? * 7#1
4. 하루 4번 6시간마다 실행 ( 0시, 6시, 12시, 18시 4회실행)
00 00 0/6 * * ?
5. 하루 4번 6시간마다 실행 ( 0시15분20초, 6시15분20초, 12시15분20초, 18시15분20초 4회실행)
20 15 0/6 * * ?
6. 매10분마다 실행
00 0/10 * * * ?
7. 매일 19시~20시 사이 30분 간격으로 19시 09분부터 실행 (19시09분, 19시39분, 20시09분, 20시39분)
00 09/30 19-20 * * ?
이 경우 정확히는 19~20시 사이라기 보다는 시간구간이 19시와 20시 일때이므로 실질적으로는 19시에서 21시다.