【问题标题】:Apache Timer is running twiceApache Timer 运行两次
【发布时间】:2018-06-25 20:56:33
【问题描述】:

Apache 计时器在 Spring DSL xml 中触发了两次。其触发时间间隔为 2 或 3 秒。每次定时器触发时,它都会触发两次,我的代码会执行两次。
请帮我解决我可以设置的任何参数或任何其他停止重复触发器的解决方案。

<from id= "Timer" uri="timer://foo?fixedRate=true&amp;period=3000"/> 

【问题讨论】:

  • 根据我的要求路线,每 30 秒仅生成一次事件:Timer
  • period=3000 表示 3000 毫秒或 3 秒。不是 30 秒。
  • 即使我配置了 30s 和 60s 仍然在 4 秒的间隔内调用两次
  • 轮询触发器 :04:01:55.582 轮询触发器 :04:01:59.010 轮询触发器 :04:02:55.582 轮询触发器 :04:01:59.010
  • 您可能有 2 条路线之类的东西,或者您记录的内容被打印了两次。

标签: java spring apache apache-camel


【解决方案1】:

我也有同样的要求。如果不设置“同步”,则无论前一个实例是否已完成,都会为每个周期生成一个计时器任务。如果您只想在任何时间点运行一个计时器任务,请将同步设置为 true - 请参阅 https://github.com/apache/camel/blob/master/camel-core/src/main/docs/timer-component.adoc

同步(高级 - 默认:false)

设置是否应严格使用同步处理,或者允许 Camel 使用异步处理(如果支持)。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多