日期:2014-05-19  浏览次数:20873 次

spring定时器引起系统变慢
有一个项目,加入spring定时器(配置文件如下)后,在MyEclipse中启动特别慢,没加这段代码大概一分钟之内能启动,加了之后需要20分钟左右才能启动,启动之后页面打开也很慢,奇怪的是,当Tomcat还没完全启动,定时器就已经开始跑了,并且不是按我规定的5,10,15。。。每隔五分钟跑一次,好像是当写有定时器的文件被加载时就开始执行了,然后过五分钟执行一次,在Tomcat完全启动起来之前,它已经执行了三四次了。
另外,当我单独启动Tomcat时没有问题,30多秒就启动起来了,而且定时器执行时间也正常。

请高人指点一下!

<bean id="schedulerJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="msgmanageAction" />
<property name="targetMethod" value="msgReceiv" />
<property name="concurrent" value="false" />
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="schedulerJobDetail" />
<property name="cronExpression">
<value>0 5/5 * * * ?</value>
</property>
</bean>
<bean id="schedulerFactory"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger" />
</list>
</property>
</bean>

------解决方案--------------------
quartz是会根据表中的数据执行job的,你查看一下你数据库中以QRTZ_开头的表中是否有数据,如果有可以全部删除