繁体   English   中英

Apache骆驼IMAP同一邮件帐户的多个消费者

[英]Apache camel IMAP multiple consumers of same mail account

我有允许动态创建和启动路线的应用程序。 例如,用户可以创建从 IMAP 到文件的路由并启动它。

问题:多个路由通过 IMAP 从同一邮件帐户读取。

Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route c1152_route because of Multiple consumers for the same endpoint is not allowed: imap://localhost:3143?delay=1000&password=xxxxxx&searchTerm.fromSentDate=now-24h&searchTerm.unseen=false&username=user@user

我尝试了两种方法:

1.创建从 IMAP 到多个收件人路由的附加单个路由。 这个可行,但我不确定这个解决方案。 它需要对路线的开始/停止进行额外检查,因为很少有路线可能依赖于这条路线。

from(imap())
   .recipientList(imapMsgToDirectChannelRouter())

2.创建具有唯一 uri 的 IMAP 端点。 例如,每条路线的唯一 searchTerm.fromSentDate。 这个也有效。

这个问题有更好的解决方案吗?

对于选项#1(收件人列表),我肯定会选择 go。

我不明白为什么必须停止并启动“主”路线(“imap”路线)。 根据您添加或删除的收件人,您将启动和停止相应的子路由,但不要触及主路由。

我正在考虑这样的事情:

from("imap:...")
  .id("master-route")
  .recipientList( simple("bean:computeRecipients") )
  .parallelProcessing();

将准确的接收者列表的即时计算委托给某个 bean。 这样,您不必触摸“主路由”,而只需让 bean 知道收件人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM