需要明确 Camel Timer 组件的及时处理

Need clarity on Camel Timer component timely processing

在 Apache Camel 中,我已将计时器组件配置为每 15 分钟触发一次作业。假设如果任何作业由于数据加载而花费超过 15 分钟来完成它的任务,它是否会受到下一个作业的影响,因为我们已经配置为每 15 分钟 运行 个作业。

正如 Claus 已经评论的那样,Camel Timer component controls this. The term fixedRate refers to the same term of Javas ScheduledExecutorService 的选项 fixedRate

默认为fixedRate=false。这意味着 Timer 使用 ExecutorService 的 fixed-delay execution。例如

delay=30000&period=60000&fixedRate=false

表示任务启动30s后第一次运行。之后 前一个任务完成 60 秒后新任务开始 。任务永远不能重叠。

相比之下,fixedRate=true切换到ExecutorService的fixed-rate execution。例如

delay=30000&period=60000&fixedRate=true

表示任务启动30s后第一次运行。之后 每 60 秒启动一个新任务,无论任务有多长 运行。所以在此设置中,任务可以重叠。