一个原来写的SSH的Web项目,现在需要增加定时执行数据库查询的操作。一开始使用TimerTask实现的,但在测试过程中,发现时不时会莫名其妙的挂掉,网上查了一下,普遍反映是原生缺陷。
看了一些讨论帖后,决定放弃TimerTask,使用成熟的QuartZ来实现。
首先到官网下载最新版本的jar包:http://www.quartz-scheduler.org/,全部添加到项目中去,依赖的jar包有新版的spring-context-support和spring-beans,注意自行下载添加。
QuartZ配置和使用非常简单,正常写个普通类和方法,我用的DutyJob,再配置到xml文件中进行加载即可,配置如下:
<!--配置job类-->
<bean id="dutyJob" class="logic.DutyJob"></bean>
<!--配置jobDetail-->
<bean id="SpringQtzJobMethod0" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean="dutyJob"></ref></property>
<property name="targetMethod"><value>job0</value></property>
</bean>
<bean id="SpringQtzJobMethod1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject"><ref bean=