본문 바로가기
Study/Spring

Spring을 이용해 간단한 스케쥴러 만들기

by 오늘만 사는 여자 2020. 2. 6.
728x90
반응형
더보기

- spring version : 3.1.1

1.root-context.xml에 Setting

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:task="http://www.springframework.org/schema/task"
	xmlns:util="http://www.springframework.org/schema/util"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">

 

2. root-context.xml에 더하기

<!-- 스케쥴러파일이 존재하는 패키지 설정 --> 
<context:component-scan base-package="com.studydy.dayoon" /> 
<!-- 해당 태그들은 크론탭을 설정에 필요한 태그들 --> 
<task:scheduler id="jobScheduler" pool-size="10" /> 
<task:annotation-driven scheduler="jobScheduler" />

 

  • 위 설정을 잡아두면 다음으로 xml설정 잡은 것처럼 패키지 생성을 맞추기

3. 스케쥴러 코드 작성

package com.studydy.dayoon;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class Scheduler {
	/** * 1. 오후 05:50:00에 호출이 되는 스케쥴러 */ 
	@Scheduled(cron = "0 18 16 * * *") 
	public void cronTest1(){ System.out.println("오후 05:50:00에 호출이 됩니다 "); } 
	
	/** * 2. 오후 05:51:00에 호출이 되는 스케쥴러 */ @Scheduled(cron = "0 19 16 * * *") 
	public void cronTest2(){ System.out.println("오후 05:51:00에 호출이 됩니다 "); }

}

 

※결과


Cron Expression 

 

예를들어 위 코드에서 

 

"0 51 17 * * *"

 

라는 코드를 작성하였는데

앞에서부터 설명하자면

 

"초 분 시 일 월 요일"

이라는 것이다

 

'*' 이라는 expression은 모두 또는 항상을 의미한다

 

즉 상단 expression을 설명하면

 

17시 51분이 되면 해당 스케쥴러 호출이라는 의미다.

일/월/요일에 대해서는 '*' 설정을 잡아 주었으니 "매일 17시 51분이 되면 해당 스케쥴러를 호출하라"

라는 의미가 되는것이다

 

 

Reference : 
https://roqkffhwk.tistory.com/201

728x90
반응형

댓글