Quartz 스케쥴러에 배치(batch) 파일 등록하기
주기적인 어떤 작업을 할떄 리눅스(Linux)에서는 크론탭(CronTab) 방식을 사용합니다.
하지만 이곳에서는 Spring의 Quartz 스케쥴러 방식을 사용하여 구현하고 있습니다.
Quartz의 핵심인 /WEB-INF/config/applicationContext.xml 작성법은 아래와 같습니다.
- 실제 실행될 class 등록
- 스케쥴러가 동작하는 주기 설정
- 실제로 동작 하도록 설정
- 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 |