프로그래밍/JAVA

quartz 사용시 스케쥴 cron 형식

내맘대로내뜻대로 2020. 11. 2. 18:53
728x90

quartz 를 사용하여 스케쥴 설정시 croncronExpression 설정이 헷갈릴때가 많다.

 

가장 보편적으로 사용하는 형태가 다음과 같은 형태일 것이다.

 

00 30 01 * * ?

 

간단하게 정리하면 매일 01시 30분에 실행하는 스케쥴이라는 의미이다.

 

각 자리수의 의미는

 *     *     *     *    *      *       *

초    분   시   일   월   요일   년도(생략가능)

 

  1. 초(Seconds)
  2. 분(Minutes)
  3. 시(Hours)
  4. 일(Day-of-Month)
  5. 월(Months)
  6. 요일(Days-of-Week)
  7. 연도(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시다.

728x90