作业未以固定速率执行

Job not executing at fixed rate

我有以下 spring mvc 配置:

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

我执行上面的时候不是每500ms执行一次,而是在上一个执行完后才执行。

我该如何解决这个问题?

区别在于时间而不是任务数量。 Fixed rate 将跟踪时间并启动新线程以匹配 5 秒的固定时间。所以简而言之,您不会像您期望的那样拥有多个线程。

15秒内,应该执行3次。但是,如果第一个任务需要 10 秒,第二个任务需要 6 秒,那么在第 16 秒,第三个任务将开始。下一个任务将从第 20 秒开始(固定速率),前提是第三个任务到那时完成。希望这是有道理的。

查看详细答案here