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