Apache camel 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.Creating 从 IMAP 到多个收件人路由的附加单个路由。这个有效,但我不确定这个解决方案。它需要对 starting/stopping 路线进行额外检查,因为很少有路线可能依赖于此路线。
from(imap())
.recipientList(imapMsgToDirectChannelRouter())
2.Creating 具有唯一 uri 的 IMAP 端点。例如,每条路线都是唯一的 searchTerm.fromSentDate。这个也可以。
这个问题有没有更好的解决办法?
我肯定会选择选项#1(收件人列表)。
我不明白为什么必须停止和启动 'master' 路线(“imap”路线)。
根据您添加或删除的收件人,您将启动和停止相应的子路由,但不会触及主路由。
我正在考虑这样的事情:
from("imap:...")
.id("master-route")
.recipientList( simple("bean:computeRecipients") )
.parallelProcessing();
收件人确切列表的即时计算委托给了某个 bean。
这样,您不必触及“master-route”,而只需让 bean 知道收件人
我有一个允许动态创建和启动路由的应用程序。例如,用户可以创建从 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.Creating 从 IMAP 到多个收件人路由的附加单个路由。这个有效,但我不确定这个解决方案。它需要对 starting/stopping 路线进行额外检查,因为很少有路线可能依赖于此路线。
from(imap())
.recipientList(imapMsgToDirectChannelRouter())
2.Creating 具有唯一 uri 的 IMAP 端点。例如,每条路线都是唯一的 searchTerm.fromSentDate。这个也可以。
这个问题有没有更好的解决办法?
我肯定会选择选项#1(收件人列表)。
我不明白为什么必须停止和启动 'master' 路线(“imap”路线)。 根据您添加或删除的收件人,您将启动和停止相应的子路由,但不会触及主路由。
我正在考虑这样的事情:
from("imap:...")
.id("master-route")
.recipientList( simple("bean:computeRecipients") )
.parallelProcessing();
收件人确切列表的即时计算委托给了某个 bean。 这样,您不必触及“master-route”,而只需让 bean 知道收件人