Apache Camel计时器:“period”vs“fixedRate”

时间:2013-07-22 11:15:54

标签: apache-camel

“period”和“fixedRate”的确切用法是什么?这是否真的有意义,因为如果我指定了“期间”值,那么无论如何计时器将在该间隔之后触发。那么“fixedRate”标志的确切用法是什么?

我很困惑请帮帮我!

2 个答案:

答案 0 :(得分:4)

您可以在以下位置阅读java.util.Timer的javadoc api:http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

他们解释了固定利率和延迟利率之间的区别。

答案 1 :(得分:1)

Camel Timer 端点使用 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)


如果我理解 Javadoc of the Timer class 固定速率执行不关心前一次执行的执行时间,只关心初始执行的执行时间。

举例说明:

以固定速率执行的计时器为例,初始执行时间为 12:00,周期为 1 小时。计时器将(尝试)在 14:00 开始第三次执行 - 即使出于某种原因,本应在 13:00 开始的执行被延迟并实际在 13:06 开始。

如果计时器没有有固定速率执行,它会(尝试)在 14:06 开始第三次执行。