본문 바로가기

공부방/Spring

스프링 쿼츠 (Spring Quartz) 스케쥴러에 배치(Batch) 파일 등록하기

Quartz 스케쥴러에 배치(batch) 파일 등록하기


주기적인 어떤 작업을 할떄 리눅스(Linux)에서는 크론탭(CronTab) 방식을 사용합니다.
하지만 이곳에서는 Spring의 Quartz 스케쥴러 방식을 사용하여 구현하고 있습니다.

Quartz의 핵심인 /WEB-INF/config/applicationContext.xml 작성법은 아래와 같습니다.
  1. 실제 실행될 class 등록
  2. 스케쥴러가 동작하는 주기 설정
  3. 실제로 동작 하도록 설정
  • Simple Type: 주기 시간이 몇초, 몇분 혹은 몇시간 단위로 작동 (이곳 프로젝트와 무관)
  • Cron Type: 리눅스의 CronTab과 같은 동작. 몇월 몇일 몇시에 동작할지 설정 (이 방식 사용)
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
 <!--1. 실제 실행될 class 등록 -->
    <bean id="cronQuartzJob" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="실제.실행될.class.이름"/>
    </bean>
    
    <!--2. 스케쥴러가 동작하는 주기 설정-->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="cronQuartzJob"/>
             <!-- 매일 새벽 1시에 실행 (24시간 format) -->
        <property name="cronExpression" value="001**?"/>
    </bean>
    
    <!--3. 실제로 동작하도록 설정 -->
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTrigger"/>
            </list>
        </property>
        <property name="quartzProperties">
            <props>
                <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
                <prop key="org.quartz.threadPool.threadCount">5</prop>
                <prop key="org.quartz.threadPool.threadPriority">4</prop>
                <prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>
                <prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
            </props>
        </property>
    </bean>
</beans>

 

 

 

실제 작동할 class 파일

 

1
2
3
4
5
6
7
8
    //QuartzJobBean을 꼭 상속받아야 한다.
public class SimpleQuartzJob extends QuartzJobBean{
    
    @Override
    protected void executeInternal(JobExecutionContext ex)throws JobExecutionException {
        quartzJobService.printLog();
    }    
}

 

출처 : https://m.blog.naver.com/PostView.nhn?blogId=samurae83&logNo=90168082118&proxyReferer=https%3A%2F%2Fwww.google.com%2F

'공부방 > Spring' 카테고리의 다른 글

Quartz 라이브러리 연동을 통한 스케쥴러 구현  (0) 2019.01.02
STS4 설치와 개발 환경 설정  (0) 2019.01.02
Http 응답상태 코드  (0) 2013.03.12
교육5일차 정리  (0) 2013.03.08
교육 4일차 정리  (0) 2013.03.07