- 스프링에서는 간편하고 프레임워크안에서 스케쥴링 하던 quatz 를 annotation 으로 더 간단하게 설정 할 수 있다.

1. applicationContext.xml 같은 bean 을 설정하는 설정파일에

xmlns:context="http://www.springframework.org/schema/context"

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task-3.0.xsd

<task:annotation-driven />

 

구문을 입력하면 된다.

EX) 별도의 context-schedule.xml 로 관리(첨부파일 확인)

파일명 : context-schedule.xml  (context-schedule.xml)

 

 

2. 스케쥴링 할 메소드위에 @scheduled 어노테이션을 입력한 후에 시간설정하면 끝

 

3. 시간 설정 @scheduled(cron=" ")  * 리눅스 crontab 과 같은 설정방법

ex> @Scheduled(cron="0 0 02 * * ?") = 매일 새벽2시에 실행

ex> @Scheduled(cron="0 0 02 2,20 * ?") = 매월 2일,20일 새벽2시에 실행

 

4. 스케쥴러 cron 양식? 의미?

 

초 0-59 , - * /
분 0-59 , - * /
시 0-23 , - * /
일 1-31 , - * ? / L W
월 1-12 or JAN-DEC , - * /
요일 1-7 or SUN-SAT , - * ? / L #
년(옵션) 1970-2099 , - * /

* : 모든 값
? : 특정 값 없음
- : 범위 지정에 사용
, : 여러 값 지정 구분에 사용
/ : 초기값과 증가치 설정에 사용
L : 지정할 수 있는 범위의 마지막 값
W : 월~금요일 또는 가장 가까운 월/금요일
# : 몇 번째 무슨 요일 2#1 => 첫 번째 월요일

 

예제)
Expression Meaning
초분시일월주(년)
 "0 0 12 * * ?" : 아무 요일, 매월, 매일 12:00:00
 "0 15 10 ? * *" : 모든 요일, 매월, 아무 날이나 10:15:00
 "0 15 10 * * ?" : 아무 요일, 매월, 매일 10:15:00
 "0 15 10 * * ? *" : 모든 연도, 아무 요일, 매월, 매일 10:15
 "0 15 10 * * ? : 2005" 2005년 아무 요일이나 매월, 매일 10:15
 "0 * 14 * * ?" : 아무 요일, 매월, 매일, 14시 매분 0초
 "0 0/5 14 * * ?" : 아무 요일, 매월, 매일, 14시 매 5분마다 0초
 "0 0/5 14,18 * * ?" : 아무 요일, 매월, 매일, 14시, 18시 매 5분마다 0초
 "0 0-5 14 * * ?" : 아무 요일, 매월, 매일, 14:00 부터 매 14:05까지 매 분 0초
 "0 10,44 14 ? 3 WED" : 3월의 매 주 수요일, 아무 날짜나 14:10:00, 14:44:00
 "0 15 10 ? * MON-FRI" : 월~금, 매월, 아무 날이나 10:15:00
 "0 15 10 15 * ?" : 아무 요일, 매월 15일 10:15:00
 "0 15 10 L * ?" : 아무 요일, 매월 마지막 날 10:15:00
 "0 15 10 ? * 6L" : 매월 마지막 금요일 아무 날이나 10:15:00
 "0 15 10 ? * 6L 2002-2005" : 2002년부터 2005년까지 매월 마지막 금요일 아무 날이나 10:15:00
 "0 15 10 ? * 6#3" : 매월 3번째 금요일 아무 날이나 10:15:00

 

사진도 첨부합니다.

 

 

 

+ Recent posts