1

我在 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 是否需要以某种方式进行配置?

谢谢,

4

2 回答 2

0

我怀疑cron"* */10 * * * *"元素的值不正确。

*/10我在http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger上找不到文档

/引入了一个值的增量,其中 as表示*所有值,因此*/10在分钟内没有意义。

于 2012-04-28T01:23:03.183 回答
0

在我看来,cron 中的第一个 * 应该是 0,0 */10 * * * *表示在 0 秒时每 10 分钟运行一次,而不是每秒每 10 分钟运行一次它将运行多次,具体取决于完成每次调用所需的时间. 要获得 8 次调用,单次运行只需一分钟多一点)。请注意spring javadoc示例如何以零开头。

于 2013-03-26T23:16:23.070 回答