Apache camel 骆驼条件轮询消费者

Apache camel 骆驼条件轮询消费者,apache-camel,Apache Camel,我有一个apachecamel应用程序,它在生产环境中作为三个相同的服务运行,以实现可伸缩性。我想使用骆驼邮件api将电子邮件服务器轮询添加到此应用程序。因为我不希望这三个实例同时轮询服务器,所以我希望在骆驼轮询之前设置一些锁定机制。然而,由于邮件消费者是轮询消费者,我不能在这种情况下使用它们。有没有一个简单的方法可以做到这一点 简而言之,我的路线如下: from("imaps://mymail...")//This polls periodically .to(Processmail

我有一个apachecamel应用程序,它在生产环境中作为三个相同的服务运行,以实现可伸缩性。我想使用骆驼邮件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()
允许您向轮询消费者“呼叫”,作为路线中的一个步骤。这意味着,它可以像“from()”一样使用,但要在路由的中途使用

示例:

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

看起来是个不错的选择,我会尽力的谢谢你。@DariusX。如果你在下面输入答案,我可以接受。再次感谢你。