“period”和“fixedRate”的确切用法是什么?这真的有意义吗,因为如果我指定了“周期”值,那么无论如何计时器都会在该间隔之后触发。那么“fixedRate”标志的确切用途是什么?
我很困惑,请帮帮我!
“period”和“fixedRate”的确切用法是什么?这真的有意义吗,因为如果我指定了“周期”值,那么无论如何计时器都会在该间隔之后触发。那么“fixedRate”标志的确切用途是什么?
我很困惑,请帮帮我!
您可以在以下位置阅读 java.util.Timer 的 javadoc api:http: //docs.oracle.com/javase/7/docs/api/java/util/Timer.html
他们解释了固定利率和延迟利率之间的区别。
Camel 计时器端点使用java.util.Timer
.
如果将fixedRate
标志设置true
为使用以下方法:
java.util.Timer#scheduleAtFixedRate(java.util.TimerTask, java.util.Date, long)
否则使用以下方法:
java.util.Timer#schedule(java.util.TimerTask, java.util.Date, long)
如果我了解Timer 类的 Javadoc,则固定速率执行不关心前一次执行的执行时间,只关心初始执行的执行时间。
一个澄清的例子:
采用一个固定速率执行的计时器,初始执行时间为 12:00,周期为 1 小时。计时器将(尝试)在 14:00 开始第三次执行 - 即使由于某种原因,本应在 13:00 开始的执行被延迟并实际上在 13:06 开始。
如果计时器没有固定速率执行,它将(尝试)在 14:06 开始第三次执行。