【问题标题】:Camel Conditional Polling Consumer骆驼条件轮询消费者
【发布时间】:2016-11-01 19:25:46
【问题描述】:

我有一个 apache camel 应用程序,它在生产环境中作为三个相同的服务运行以实现可扩展性。我想使用 camel-mail api 向此应用程序添加电子邮件服务器轮询。由于我不希望所有这三个实例同时轮询服务器,我想在骆驼轮询之前放置一些锁定机制。但是,由于邮件消费者正在轮询消费者,因此在这种情况下我无法使用它们。有没有简单的方法可以做到这一点?

简而言之,我有如下路线:

 from("imaps://mymail...")//This polls periodically
    .to(Processmail.class)

但我在骆驼 dsl 中需要类似下面的东西

   from("timer:mytimer")
     .to("direct:checkDistributedLock")
     .choice()
      .when(header("gotlock").isEqualTo("true"))
         .from("imaps://..") // can not use from here!!! 
     .end()

【问题讨论】:

  • 看来是个不错的选择,我试试谢谢。
  • @DariusX。如果您在下面输入作为答案,我可以接受。再次感谢您。

标签: apache-camel


【解决方案1】:

pollEnrich() 允许您“呼叫”轮询消费者作为您路线中的一个步骤。这意味着,它可以像“from()”一样使用,但在路线的中间。

示例:

   from("timer:mytimer")
     .to("direct:checkDistributedLock")
     .choice()
      .when(header("gotlock").isEqualTo("true"))
         .pollEnrich("imaps://mymail...")
         .to(Processmail.class)
     .end()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 2015-08-27
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多