일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- MySQL
- jvm
- spring
- JavaScript
- CentOS6
- docker 설치
- SpringBoot
- generate entity
- spring boot
- custom valid
- JPA
- 초기 세팅
- Java
- docker
- NextJS
- 리눅스
- memcached
- swagger
- Next.js 14
- 초기 구축
- java8
- jpa entity자동
- React
- 헤더 설정
- header setting
- ollama langflow
- java9
- generate pojos
- dto valid
- 도커
Archives
- Today
- Total
개발자의 길
[java]스프링 쿼츠 (Spring Quartz) 스케쥴러에 배치(Batch) 파일 등록하기 [출처] 스프링 쿼츠 (Spring Quartz) 스케쥴러에 배치(Batch) 파일 등록하기|작성자 비전공 개발자 본문
4. JAVA
[java]스프링 쿼츠 (Spring Quartz) 스케쥴러에 배치(Batch) 파일 등록하기 [출처] 스프링 쿼츠 (Spring Quartz) 스케쥴러에 배치(Batch) 파일 등록하기|작성자 비전공 개발자
자르르 2014. 2. 14. 15:30Quartz 스케쥴러에 배치(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(); } |
'4. JAVA' 카테고리의 다른 글
Java 의 keystore에 SSL Server 인증서를 import 하는 방법 (0) | 2015.02.05 |
---|---|
[java] 오라클에서 clob으로 받아온 데이터 String으로 처리 하기 (0) | 2014.06.17 |
[java]Java.math.BigDecimal의 사용(double,float 더하기 버그해결) (0) | 2014.02.13 |
[java] inputstream, outputstream 예제 (0) | 2014.01.24 |
[java]imageIO를 이용한 url로 이미지 가져와 로컬에 저장하기 (0) | 2013.11.19 |
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Comments