Programming/JAVA
Spring 에서 Quartz 사용 설정하기
Edward. K
2007. 10. 16. 11:19
반응형
-------------- scheduler object -------------------
package test;
public class RankUpdateScheduler {
private static int count = 0;
public void rankUpdate() {
System.out.println (DateUtil.getTodayString("yyyy년 MM월 dd일 HH시 mm분 ss초") + " - Starting Scheduler... : " + count++ + " times.");
}
}
public void rankUpdate() {
System.out.println (DateUtil.getTodayString("yyyy년 MM월 dd일 HH시 mm분 ss초") + " - Starting Scheduler... : " + count++ + " times.");
}
}
----------- applicationContext.xml -----------------
<!-- Quartz Scheduling Setting -->
<!-- 스케쥴러 Object 설정 -->
<bean id="RankUpdateObject" class="test.RankUpdateScheduler" />
<!-- 스케쥴러 Object를 가지고 JobDetail 생성 -->
<!-- MethodInvoing 방식 - 스케쥴러에서 실행할 객체와 메소드를 지정한다. -->
<!-- 여기서는 RankUpdateScheduler 객체의 rankUpdate() 메소드를 호출한다. -->
<bean id="RankUpdateMethodInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="RankUpdateObject"/></property>
<property name="targetMethod"><value>rankUpdate</value></property>
<property name="concurrent"><value>false</value></property>
</bean>
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="RankUpdateObject"/></property>
<property name="targetMethod"><value>rankUpdate</value></property>
<property name="concurrent"><value>false</value></property>
</bean>
<!-- JobDetail 로 CronTrigger 생성 -->
<!-- cronExpression 에서는 주기를 설정한다. 이 부분은 Quartz trigger 부분을 참고할 것 -->
<bean id="RankUpdateCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="RankUpdateMethodInvokingJobDetail"/>
</property>
<property name="cronExpression">
<!-- run every 1 minutes -->
<value>0 0/1 * * * ?</value>
</property>
</bean>
<bean id="RankUpdateCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="RankUpdateMethodInvokingJobDetail"/>
</property>
<property name="cronExpression">
<!-- run every 1 minutes -->
<value>0 0/1 * * * ?</value>
</property>
</bean>
<!-- 생성된 trigger 를 가지고 SchedulerFactoryBean 을 생성한다. -->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="RankUpdateCronTrigger"/>
</list>
</property>
</bean>
<property name="triggers">
<list>
<ref local="RankUpdateCronTrigger"/>
</list>
</property>
</bean>
반응형