[Spring]_Scheduler 설정 및 사용

2022. 6. 17. 13:01[Spring]_

728x90
반응형

목적

일정한 시간대에 원하는 함수가 실행되도록 하는 스케쥴링 작업

 

방안

Dispatcher-servlet 에 task:scheduler 사용

 

사용법

Dispatcher-Servlet 안에 실행할 함수 가 있는 클래스를 bean으로 등록

해당 클래스를 task:scheduler 를 사용하여 스케쥴링 등록

 

다른 방법

1. @Scheduled 어노테이션 으로 사용하는 방법

2. Spring Quartz 사용하기

 


설명

1. 스케쥴링 할 함수 생성

@Component
public class ScheduledJob {
		public void testSchedule(){
        //스케쥴 돌릴 내용
        }
}

 

2. Dispatcher-Servlet 설정

 

최상단의 bean 에 해당 2줄 추가

<beans xmlns="http://www.springframework.org/schema/beans"
	//생략
    xmlns:task="http://www.springframework.org/schema/task"
    //생략
    http://www.springframework.org/schema/task/spring-task-4.2.xsd">

3. bean 추가

 

서비스를 돌릴 class의 경로를 적어주시면 됩니다.

<bean id="scheduleJobService" class="kr.co.yn971106.schedule.ScheduledJob" />

4. 스케쥴 등록

<task:scheduler id="testSchedule" pool-size="10" />
<task:scheduled-tasks scheduler="testSchedule">
   <task:scheduled ref="scheduleJobService" method="testSchedule" cron="0 0 10 * * * *"/>
</task:scheduled-tasks>

id , scheduler, method 에는 bean으로 등록한 클래스 아래에 스케쥴링을 할 함수 이름을 적어줍니다.

ref 의 값에는 bean으로 등록시 지정한 id 값을 넣어줍니다.

cron 의 값은 Cron 표현식을 이용합니다.

 

위의 값은 매일 10시에 스케쥴 한다는 의미입니다.

 

Cron 표현식 변환 사이트

http://www.cronmaker.com/;jsessionid=node0sq2t6jgtyjtr1nn810m1se5pg1016743.node0?0 

 

CronMaker

 

www.cronmaker.com

 

 

감사합니다.

 

728x90
반응형