在用spring+quartz时,想实现一个每小时执行一次的操作任务,但是呢,想在web容器启动时,这个定时任务里面的这个操作先马上执行,其后,再按照每小时执行一次,我的是这样配置的,
<bean id="XXX" class="cn.XXX"></bean> <bean id="schedulerJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="XXX" />
<property name="targetMethod" value="EEE" />
</bean> <bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="schedulerJobDetail" />
<property name="cronExpression">
<value>0 0 * * * ?</value>
</property>
</bean> <bean id="schedulerFactory"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger" />
</list>
</property>
</bean>
可是配置完后启动tomcat时,却发现没有按预期的进行,只是要等一个小时候才执行定时任务里面的方法,如何正确配置才能实现启动容器时马上执行操作,其后再定时执行?

解决方案 »

  1.   

    可以换个简单的trigger<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
      <!-- see the example of method invoking job above -->
      <property name="jobDetail" ref="jobDetail"/>
    <!-- 10 seconds -->
      <property name="startDelay" value="10000"/>
    <!-- repeat every 50 seconds -->
      <property name="repeatInterval" value="50000"/>
    </bean>
      

  2.   

    你再另配一个SimpleTrigger,启动时运行,不就可以了