spring quartz 服务器启动没有执行

yuanxu_zhao 发布于 2015/03/30 17:25
阅读 5K+
收藏 0

spring quartz 服务器启动时没有马上执行一次,而是到设定的时间才执行。怎么配置可以让服务器已启动就执行一次。

xml配置:startDelay也设置了,就是没有执行

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="quartzJob" />
  <property name="targetMethod">
   <value>synchronizeDb</value>
  </property>
  <property name="concurrent" value="false" />
 </bean>
 
 <!-- 任务调度计时器,进行定时设置。CronTriggerBean能进行非常精确的定时设置 -->
 <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="jobDetail" />
  <property name="startDelay" value="1000" />
  <!-- cron表达式 -->
  <property name="cronExpression">
   <!--   0 0 */2 * * ? 每两小时、整点触发 -->
   <!--   0 0/2 * * * ? 每两分钟  -->
   <!--   0/5 * * * * ? 每五秒钟  -->
   <!--   0 15 10 * * ? 每天Y分X点触发  -->
   <!-- 0 0 * * * ? 每小时-->
   <value>0 0/2 * * * ?</value>
  </property>
 </bean>
 
 <!-- 调度任务触发器,启动定时任务-->
 <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
   <list>
    <ref bean="cronQuartzClock" />
   </list>
  </property>
 </bean>   

 

以下是问题补充:

@yuanxu_zhao:--------------------- 另外每天每小时执行一次是这样写吗? 0 0 * * * ? (2015/03/30 17:28)
加载中
0
焙焙龙
焙焙龙

用SimpleTriggerBean

CronTriggerBean就是按照cron表达式来执行的,不到时间不干活

另外每天每小时执行一次是 0 0 * * * ?

前面俩0表示是整点执行,如果是半点执行的话则是0 30 * * * ?

或者每半点执行的话是0 0,30 * * * ?

yuanxu_zhao
yuanxu_zhao
刚看了下,simpleTriggerBean 是根据秒数来执行,我的业务是根据没到整点需要执行,如果用simpleTriggerBean服务器启动必须整点启动? CronTriggerBean不能实现服务器启动后执行一次吗?
yuanxu_zhao
yuanxu_zhao
非常感谢谢,我用simpleTriggerbean试试.
0
yuanxu_zhao
yuanxu_zhao

引用来自“焙焙龙”的评论

用SimpleTriggerBean

CronTriggerBean就是按照cron表达式来执行的,不到时间不干活

另外每天每小时执行一次是 0 0 * * * ?

前面俩0表示是整点执行,如果是半点执行的话则是0 30 * * * ?

或者每半点执行的话是0 0,30 * * * ?

CronTriggerBean 如果不能启动服务时,执行一次,那只能把时间设为每秒,然后人工在执行方法中判断是不是整点了??
返回顶部
顶部