자바기반 스케줄링 프로그래밍(5) - Quartz + CronTrigger
CronTrigger는 앞에서 살펴본 "cron 표현법"을 사용하여 스케줄링 기능을 제공한다.
작업(Job) 실행이 달력 개념을 기반으로 반복된다면 SimpleTrigger보다 CronTrigger가 더 유용하게 사용될 수 있다.
"매주 월요일부터 금요일까지 아침8시”
"매달 마지막 금요일 새벽1시30분”
하지만 cron 표현법 보다는 좀 더 자세한 설정이 가능한데 "초(seconds)" 와 "년(year)" 이다.
필드 명 |
필수 |
허용 값 |
Special characters |
초(seconds) |
Yes |
0-59 |
, - * / |
분(minutes) |
Yes |
0-59 |
, - * / |
시(hours) |
Yes |
0-23 |
, - * / |
날짜(day of month) |
Yes |
1-31 |
, - * / ? L W |
월(month) |
Yes |
1-12 or JAN-DEC |
, - * / |
요일(day of week) |
Yes |
1-7 or SUN-SAT |
, - * / ? L # |
년(year) |
No |
empty, 1979-2099 |
, - * / |
다양한 특수문자 역시 동일하게 사용할수 있다.
* : 모든 값을 의미.
? : 특정 값을 정하지 않음.
- : 범위를 의미. 예) 0-10이면 0부터 10까지.
, : 값을 추가. 0-10,20-30은 0부터 10까지, 그리고 20부터 30까지.
/ : 증분을 의미. 예) 초에 0/15를 사용하면 15초마다(0, 15, 30, 45) .
L : 마지막을 의미. 날짜에 사용하면 월의 마지막 날을 의미.
31, 30 또는 28(윤달에는 29).
W : 주중(weekday)를 의미. 날짜와 같이 쓰면 그 날짜가 주중인 날을 의미.
아래는 몇가지 예를 들어본것이다.
Expression |
Meaning |
0 0 12 * * ? |
매일 12시(정오) |
0 15 10 ? * * |
매일 오전 10시 15분 |
0 15 10 * * ? |
매일 오전 10시 15분 |
0 15 10 * * ? * |
매일 오전 10시 15분 |
0 15 10 * * ? 2005 |
2005년에 매일 아침 10시 15분 |
0 * 14 * * ? |
매일 오후 2시 0분 ~ 59분 |
0 0/5 14 * * ? |
매일 오후 2시부터 2시 55분까지 5분마다 |
0 0/5 14,18 * * ? |
매일 오후 2시부터 2시 55분까지 5분마다, 6시부터 6시 55분까지 5분마다 |
0 0-5 14 * * ? |
매일 오후 2시부터 2시 5분까지 매분 |
0 10,44 14 ? 3 WED |
매년 3월의 수요일마다 오후 2시 10분과 2시 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 |
매달 마지막 금요일 오전 10시 15분 |
0 15 10 ? * 6L 2002-2005 |
2002년부터 2005년까지 매달 마지막 금요일 오전 10시 15분 |
0 15 10 ? * 6#3 |
매달 3번째 금요일 오전 10시 15분 |
0 0 12 1/5 * ? |
매달 첫날부터 5일마다 12시(정오) |
0 11 11 11 11 ? |
매년 11월 11일 오전 11시 11분 |
output