JAVA

자바 스프링(Spring) 스케쥴러 생성하기

KSJ IT 2020. 11. 24. 17:10

유익하셨다면 광고 한번씩만 클릭해주시면 감사하겠습니다.

반응형

자바 스프링프레임워크에서 스케줄러 생성하는방법

 

context-common.xml 파일을 열어서 최 상단 beans 태그에 스케쥴러 태스크를 추가한다.

 

<beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:task="http://www.springframework.org/schema/task"
             xsi:schemalocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-3.0.xsd">

 

그 이후 하단에 스케쥴러 설정을 한다.

<context:component-scan base-package="스케쥴러가 포함되는 패키지명" />
<task:scheduler id="설정할 스케쥴러 이름" />
<task:annotation-driven scheduler="위에서 설정한 스케쥴러 id" />

 

이렇게 설정파일 설정을 끝냈으면 스케쥴러를 실행할 자바파일에도 설정을 해준다.

public class Scheduler{

	@Scheduled(cron="0 0 1 * * *")
	public void Scheduled(){
    
    	system.out.println("스케쥴러 실행");
    
    }

}

 

아래의 표는 자바파일에서 cron 탭에 왼쪽부터 순서대로이다.

0 ~ 59
0 ~ 59
0 ~ 23
1 ~ 31
1 ~ 12
요일 1 ~ 7 ( * 1 => 일요일 / 7 => 토요일)
년도(옵션) 2020 ~ 2099

 

아래의 표는 cron 탭에 사용하는 표현식이다.

기호
* 모든 값
? 특정 값 없음
- 범위 ex) 1일에서 15일 (1-15)
, 설정값인 경우 ex) 1,11,21일에만 (1,11,21)
/ 시작 / 단위 ex) 0/10 ( 0분 부터 10분마다 )
L 일(day) 일경우 마지막 일, 요일에서는 마지막요일(토)

 

(사용예제)

0 0 1 * * *              매일 1시에 실행

0 0/5 1 * * *           매일 1시에 시작해서 5분간격으로 실행

0 0 1 1-15 * *         1일부터 15일까지 1시에 실행

0 0 1 1,11,21 * *      1,11,21일에만 1시에 실행

0 0 1 * * L              매주 마지막요일인 토요일 1시에 실행

 

반응형