• 분류 전체보기 (160)
    • 개인프로젝트 (5)
      • 시연영상모음 (4)
      • 주저리주저리.. (1)
    • 자바스크립트이야기 (69)
      • ExtJS (30)
      • ExtJS 유의사항 (3)
      • HTML5 (1)
      • jQuery (17)
      • jQuery플러그인소개 (9)
      • jQuery UI 소개 (9)
    • 스프링연동하기 (23)
      • spring3 mvc 설정 (4)
      • spring3 mybatis 설정 (4)
      • spring3 기타설정 (11)
      • ibatis and mybatis (4)
    • DB (26)
      • MySQL vs MS-SQL vs O.. (5)
      • MySQL (10)
      • MSSQL (5)
      • Oracle (6)
    • 서버에웹환경구축하기 (13)
      • 1.VirtualBox+CentOS .. (5)
      • 2.JAVA(JDK) 설치 (1)
      • 3.Apache+Tomcat 설치 (3)
      • 4,SVN Server 설치 (1)
      • 5.마리아DB(MariaDB) 설치 (2)
      • 6.몽고DB(MongoDB)설치 (1)
    • 샘플소스 (14)
      • 샘플소스(JAVA) (7)
      • 샘플소스(JSTL) (4)
      • 샘플소스(jQuery/스크립트) (3)
    • 에디터연동 (5)
      • NAVER-스마트에디터 (4)
      • DAUM-다음에디터 (1)
    • 블로그팁 (3)
    • 디지털이야기 (2)
댓글
/201
2014. 9. 20. 18:07
스프링3(spring3) 을 이용하여 간단 스케쥴러 세팅을 하도록 하자

우리는 프로젝트를 진행하면서 스케쥴러(일명 : 크론탭 배치실행) 를 종종 사용할때가 존재한다

보통 어떠한 데이터를 시간이 되면 DB에 insert를 한다던가 

혹은 DB정보를 읽어 특정 파일을 생성을 하다던가 등이 존재한다

이러한 경우를 위해 간단하게 샘플을 만들어 보도록 하겠음

이번장은  크론탭 연동만 소개하고 다음 포스팅에는 db연동을 하여 

위에 설명한 내용중 하나인 DB내용을 읽어서 파일을 생성하는 내용에 대하여 포스팅 해보도록 하겠다


그럼 세팅을 시작해보도록 하겠음


※ 본인의 포스팅은 STS를 기준으로 작업을 진행하였음



- 프로젝트명 : crontab

- spring version : 3.2.3






생성후 프로젝트 우클릭후 Maven -> Update Project를 해주는거 잊지말자 


Tomcat에 생성한 프로젝트를 Add를 해준다음 크론탭 연동을 진행하도록 하겠음

※ 기존 웹프로젝트의 경우는 ContextRoot 설정을 기본으로 잡아주었지만 

    스케쥴러는 별도의 컨텍스트 설정이 필요없다




위와같이 기본설정이 mvc-config.xml이 잡혀있을텐데 beans 태그를 다음과 같이 변경해주자


<beans 	xmlns="http://www.springframework.org/schema/beans" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:mvc="http://www.springframework.org/schema/mvc" 
		xmlns:context="http://www.springframework.org/schema/context"
		xmlns:task="http://www.springframework.org/schema/task"
		xsi:schemaLocation="http://www.springframework.org/schema/mvc 
							http://www.springframework.org/schema/mvc/spring-mvc.xsd
							http://www.springframework.org/schema/beans 
							http://www.springframework.org/schema/beans/spring-beans.xsd
							http://www.springframework.org/schema/context 
							http://www.springframework.org/schema/context/spring-context.xsd
	    					http://www.springframework.org/schema/task 
	    					http://www.springframework.org/schema/task/spring-task-3.1.xsd">

이어 beans 태그내에 다음 코드를 추가하자


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

위 설정을 잡아다면 다음으로 xml설정 잡은 것처럼 패키지 생성을 하도록 하자





위 구조로 잡아주었다

 crontab내에 여러개의 클래스를 잡아서 설정을 잡아 줄수도 있다

but, 본인은 하나의 클래스로만 작업을 ... 오키


이제는 스케쥴러를 돌리기위한 코드를 작성하자



package com.crontab;

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

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


위의 설정한 cron expression은 본인의 현재 시간에대 맞추어 테스트 해보도록 하자

본인은 현재 포스팅 시간대 기준으로 작업을 해본 것이다


예를들어 위 코드에서 


"0 51 17 * * *"


라는 코드를 작성하였는데

앞에서부터 설명하자면


"초 분 시 일 월 요일"

이라는 것이다


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

즉 상단 expression을 설명하면


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

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

라는 의미가 되는것이다

 

실행화면을 보도록 하자

상단 코드 작성후 tomcat start를 하고 기다리고 있었다







동작결과 정상적으로 코드 작성한 놈들이 특정 시간에 따라 호출이 정상적으로 되었다

다음 포스팅에는 DB연동을 하여 파일 생성하는 스케쥴러 제작을 진행하겠다




1. 지속적인 구독을 원하신다면 네이버 이웃추가 부탁드립니다


2. 도움이 되셨다면 공감한번 꾹! 눌러주세요

 

3. 궁금하신점이 있으시다면 댓글 GOGO 


Bye



저작자표시 비영리 변경금지 (새창열림)

'스프링연동하기 > spring3 기타설정' 카테고리의 다른 글

스프링3(spring3) 을 이용하면서 쿼츠/배치/스케쥴러 연동하기 -DB연동  (4) 2014.09.28
zxing 라이브러리를 이용하여 QR코드/큐알코드/바코드 이미지를 색상별로 생성해보도록 하자  (0) 2014.08.29
class파일내에서 classpath에 존재하는 리소스 파일읽어오기  (0) 2014.07.30
스프링3(Spring3) - 메이븐(maven) pom.xml에서 오라클 JDBC(ojdbc14.jar) 라이브러리 추가하기  (0) 2014.07.30
스프링3(Spring3) - RedirectAttributes를 이용하여 리다이렉트 POST 방식으로 데이터 전송하기  (0) 2014.07.30

티스토리툴바