我有以下 spring mvc 配置:
<task:scheduled-tasks scheduler="defaultScheduler">
<task:scheduled ref="myTaskWorker" method="someMethod"
fixed-rate="500" />
</task:scheduled-tasks>
当我执行上面的代码时,它不是每 500ms 执行一次,而是仅在前一个完成后执行。
我该如何解决这个问题?
最佳答案
差异在于时间而不是任务数量。 固定速率
将跟踪时间并旋转新线程以匹配 5 秒的固定时间。简而言之,您不会像您期望的那样拥有多个线程。
15秒内,应该有3次处决。但是,如果第一个任务需要 10 秒,第二个任务需要 6 秒,那么在第 16 秒,第三个任务将开始。下一个任务将在第 20 秒(固定速率)开始,前提是此时第三个任务已完成。希望这是有道理的。
查看详细解答here
关于spring-mvc - 作业未以固定速率执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30977484/