日期:2014-05-17  浏览次数:20673 次

spring+quartz定时器问题
我的spring定时为<property name="cronExpression" value="* * 1 1 * ?" /> 每个月的1号1点执行,如果我将时间调到1月1号1点启动tomcat执行了,但是若我此时将时间调到2点就不执行,再将时间调到1点还是不执行  这是什么原因呢  怎么解决若将定时改为<property name="cronExpression" value="0 0 1 1 * ?" /> 也就是每个月的1号1点整执行,我将时间调到00:59:00启动tomcat等到了1点整还是不执行   怎么回事啊  求解决 
附上quartz配置
<bean id="businessReport" class="com.idkj.SystemManage.CreateFolder.CreateFolder"/> <bean id="reportTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   <property name="targetObject" ref="businessReport" />   <property name="targetMethod" value="perform" />   <property name="concurrent" value="false" />  </bean>  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">      <property name="jobDetail" ref="reportTask" />      <property name="cronExpression" value="0 0 1 1 * ?"/> </bean>    <bean autowire="no"  lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  <!-- <property name="targetObject" ref="hibernateTemplate" />  -->    <property name="triggers">        <list>              <ref bean="cronTrigger" />         </list>      </property>      <property name="autoStartup" value="true"/></bean>

------解决方案--------------------
引用:
这个问题解决了  是因为Myeclipse的时间与系统时间不匹配  设置一下就可以执行了
但是新问题又来了:
执行过一次之后 超过了这个时间就不执行(正确),我再将时间调回来  不执行了
是不是quartz任务只能执行一次啊
求解决

quartz是没有问题的,定时任务肯定执行一次就结束了,比如现在9点55,你就设置10点,10点到了设置10点02执行,这样就避免时间不统一的问题了。