Spring @Scheduled调度问题

时间:2015-03-24 20:10:58

标签: java spring asynchronous

我有豆我想在春天运作我希望每天午夜只运行一次。对于测试,它在运行和死亡时将日期放入队列。

我有问题让它按原样运作。

 @Scheduled(cron = "1 0 * * * *") 

当我这样说时,该函数每小时而不是每个午夜执行

"星期二三月二十四日中午12点00分":"重置", " Tue Mar 24 13:00:02 PDT 2015":"重置"

这也是我的confs

 <context:component-scan base-package="com.bla" />

   <mvc:annotation-driven />

   <task:annotation-driven executor="taskExecutor" 
 scheduler="taskScheduler"/>

  <task:scheduler id="taskScheduler" pool-size="1" />


  <bean id="taskExecutor"


 class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" 
 destroy-method="shutdown">

    <property name="corePoolSize" value="100" />

    <property name="maxPoolSize" value="150" />

    <property name="WaitForTasksToCompleteOnShutdown" value="false" />

  </bean>

1 个答案:

答案 0 :(得分:1)

Spring使用石英调度程序,其语法与cron略有不同(在这里查看http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
它从几秒而不是几分钟开始,所以你的表达式应该是:

@Scheduled(cron = "1 0 0 * * ?")