스프링 스케쥴러 https://spring.io/guides/gs/scheduling-tasks/


CRON 크론 표현식


 초    |   분   |   시   |   일   |   월   |  요일  |   연도

0~59 | 0~59 | 0~23 | 1~31 | 1~12  |   0~6  | 생략가능



요일 : 0 (일요일) ~ 6( 토요일)

? : 설정 값 없을 때 - 일과 요일 에서만 사용가능

* : 모든조건

시작시간/단위 : 시작시간부터 해당 단위 때

시작범위-끝범위 : 시작범위 부터 끝범위까지

L : 마지막 - 일, 요일 에서만 사용가능

W : 가장 가까운 평일 찾는다 - 일 에서만 사용가능

ex) 10W

-10일이 평일 일 때 : 10일에 실행

-10일이 토요일 일 때 : 가장 가까운 평일인 금요일(9일)에 참

-10일이 일요일 일 때 : 가장 가까운 평일인 월요일(11일)에 참

# : 몇주 째인지 찾는다 - 요일 에서만 사용가능

ex) 3#2 : 수요일#2째주 에 참


예제


1) 매월 10일 오전 11시

0  1  1  10  *  *


2) 매일 오후 2시 5분 0초

0  5  14  *  *  *


3) 10분마다 도는 스케줄러 : 10분 0초, 20분 0초...

0  0/10  *  *  *


4) 조건에서만 실행되는 스케줄러 : 10분 0초, 11분 0초 ~ 15분 0초까지 실행

0  10-15  *  *  *



스프링 스케줄러 사용하기

servlet-context.xml 환경설정


1. beans태그에 task 속성 추가


1
2
 xmlns:task="http://www.springframework.org/schema/task
 
cs


2. xsi:schemaLocation 내에 코드 추가


1
2
http://www.springframework.org/schema/task 
http://www.springframework.org/schema/task/spring-task.xsd
cs



3. beans 태그의 자식태그 추가


1
2
3
<context:component-scan base-package="com.ksmart.harulook.scheduler" />
<task:scheduler id="jobScheduler" pool-size="10" />
<task:annotation-driven scheduler="jobScheduler" />
cs


스케줄러 job생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.ksmart.harulook.scheduler;
 
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import com.ksmart.harulook.hof.service.HofDao;
 
 
@Component
public class Scheduler {
    Logger log = Logger.getLogger(this.getClass());
 
    @Autowired
    private HofDao hofdao;
    
    /*매월 1일 0시 30분 명예의전당 입력*/
    @Scheduled(cron="0 30 0 1 * *")
    public void HofScheduler() {
        try{
            hofdao.insertHof();
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    
    
}
cs







참고사이트 http://hellogk.tistory.com/106

+ Recent posts