我在JBoss 5.0.1 GA上运行Spring 3.1 MVC Web应用程序。我没有使用注释。
我有一个singeton有一种方法,我希望计划在一天中的某个时间运行。
我的任务调度程序配置如下:
<task:scheduler id="taskScheduler"/>
<task:scheduled-tasks scheduler="taskScheduler">
<task:scheduled ref="service" method="DoSomething" cron="* */10 * * * *"/>
</task:scheduled-tasks>
<task:executor id="taskExecutor" pool-size="1"/>
然而,当我观察跟踪日志时,该方法正在执行多次(在我们的qa服务器和prod服务器上8次)而不是一次。
是否需要以某种方式配置QuartzScheduler?
谢谢,
答案 0 :(得分:0)
我怀疑 cron 元素的值"* */10 * * * *"
不正确。
我在http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
上找不到*/10
的文档
/
从值中引入增量,其中*
表示所有值,因此分钟中的*/10
没有意义。
答案 1 :(得分:0)
在我看来,cron中的第一个*应该是0,给出0 */10 * * * *
意味着每0分钟在0秒运行一次,而不是每隔每隔每隔10分钟运行一次(它将运行多次,具体取决于完成每个invokation所需的时间。要获得8次调用,单次运行将超过一分钟)。请注意spring javadoc示例如何以零开头。