我有以下spring mvc配置:
<task:scheduled-tasks scheduler="defaultScheduler">
<task:scheduled ref="myTaskWorker" method="someMethod"
fixed-rate="500" />
</task:scheduled-tasks>
当我执行上述操作时,它不是每500毫秒执行一次,而是仅在前一个完成后执行。
我该如何解决这个问题?
答案 0 :(得分:2)
差异在于时间而不是任务数量。 Fixed rate
将跟踪时间并旋转新线程以匹配5秒的固定时间。简而言之,您不会像预期的那样拥有多个线程。
在15秒内,应该有三次执行。但是如果第一个任务需要10秒而第二个任务需要6秒然后是第16个秒,则第三个任务将开始。下一个任务,将在第二个周期(固定费率)开始,只有当第三个任务完成时。希望这是有道理的。
查看详细答案here