1. 라이브러리 다운로드
경로 : http://www.terracotta.org/download/reflector.jsp?b=TCreleases&i=quartz-1.7.2.tar.gz
다운을 받은 후 압축을 해제하면 quartz-1.7.2.jar 파일을 프로젝트 lib 폴더로 복사한다.
2. quartz-applicationContext.xml 에 아래 내용 추가
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation=" http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
<!--iBatis를 사용시 -->
<!-- Bean 설정: Begin -->
<bean id="quartzDao" class="com.mbiz.core.dao.QuartzDao">
<property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
<!-- Bean 설정: End -->
<!-- Business Bean 설정:Begin -->
<bean id="bizUserUpdateJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.mbiz.core.service.QuartzService"/>
<property name="jobDataAsMap">
<map>
<!-- 여기서 파라미터 형식으로 Dao를 넘겨주어야 인식한다. -->
<entry key="quartzDao">
<ref local="quartzDao"/>
</entry>
</map>
</property>
</bean>
<!-- Business Bean 설정:End -->
<!-- cronExpression 설정:Begin -->
<bean id="bizUserUpdateTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 생성했던 인스턴스 id를 레퍼런스 해준다. -->
<property name="jobDetail" ref="bizUserUpdateJob"/>
<property name="cronExpression" value="0 0 22 * * ?"/>
<!-- 시간 설정 부분이다. 이렇게 설정하면 매일 밤 10시에 실행된다. -->
</bean>
<!-- cronExpression 설정:End -->
<!-- scheduler 설정:Begin -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="no">
<property name="triggers">
<list>
<!--
최종적으로 반복될 작업에 대한 인스턴스에 대한 레퍼런스를 설정한다.
여러가지 클래스를 동시에 작업 진행할 수도 있다.
-->
<ref bean="bizUserUpdateTrigger"/>
</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>
<!-- scheduler 설정:End -->
3. 반복 작업을 하게 될 클래스를 생성(현재 제 회사는 BizImpl로 합니다.) private QuartzDao quartzDao; public void setQuartzDao(QuartzDao quartzDao) {
public class QuartzService extends QuartzJobBean{
this.quartzDao = quartzDao;
}
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext)
throws JobExecutionException {
// 반복할 작업 구현
}
}
Thread 에서의 run 메소드라 생각하면 되겠다.. 이 메소드 내부의 내용이 설정한 시간마다 반복 수행된다.
출처 : http://msgzoro.egloos.com/3034871
'Tip' 카테고리의 다른 글
Appfuse 설치 (0) | 2010.04.05 |
---|---|
내가 정리한 쿼츠 + 스프링 프레임웍 (0) | 2010.03.30 |
이클립스 단축키 정리 (0) | 2010.03.22 |
CVS 접속 프로젝트 다운 (0) | 2010.03.10 |
editer 설정 (0) | 2010.03.10 |