工作没有按固定利率执行

时间:2015-06-22 10:20:28

标签: spring-mvc jobs execution

我有以下spring mvc配置:

<task:scheduled-tasks scheduler="defaultScheduler">
   <task:scheduled ref="myTaskWorker" method="someMethod"
     fixed-rate="500" />
</task:scheduled-tasks>

当我执行上述操作时,它不是每500毫秒执行一次,而是仅在前一个完成后执行。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

差异在于时间而不是任务数量。 Fixed rate将跟踪时间并旋转新线程以匹配5秒的固定时间。简而言之,您不会像预期的那样拥有多个线程。

在15秒内,应该有三次执行。但是如果第一个任务需要10秒而第二个任务需要6秒然后是第16个秒,则第三个任务将开始。下一个任务,将在第二个周期(固定费率)开始,只有当第三个任务完成时。希望这是有道理的。

查看详细答案here