Java 计数骆驼并行拆分上成功处理的邮件数
为了并行处理大量记录,我正在研究camel。我有这样的想法:Java 计数骆驼并行拆分上成功处理的邮件数,java,apache-camel,Java,Apache Camel,为了并行处理大量记录,我正在研究camel。我有这样的想法: from(CAMEL_START_ROUTE_CTE) .multicast().parallelProcessing() .to(CAMEL_PROCESS_DOMAINS_ROUTE) .to(CAMEL_PROCESS_OTHERS_ROUTE) .end() .onCompletion()
from(CAMEL_START_ROUTE_CTE)
.multicast().parallelProcessing()
.to(CAMEL_PROCESS_DOMAINS_ROUTE)
.to(CAMEL_PROCESS_OTHERS_ROUTE)
.end()
.onCompletion()
.to(EndCamelRouteBuilder.CAMEL_ROUTE);
from(CAMEL_PROCESS_DOMAINS_ROUTE)
.setHeader("domains").constant(config.getDomains())
.split(header("domains"))
.parallelProcessing()
.to(ProcessDomainCamelRoute.CAMEL_ROUTE)
.end()
.end();
骆驼的起点和路线在哪里
timer:foo?delay=100&repeatCount=1
然后,驼峰\u进程\u域\u路由如下所示:
from(CAMEL_START_ROUTE_CTE)
.multicast().parallelProcessing()
.to(CAMEL_PROCESS_DOMAINS_ROUTE)
.to(CAMEL_PROCESS_OTHERS_ROUTE)
.end()
.onCompletion()
.to(EndCamelRouteBuilder.CAMEL_ROUTE);
from(CAMEL_PROCESS_DOMAINS_ROUTE)
.setHeader("domains").constant(config.getDomains())
.split(header("domains"))
.parallelProcessing()
.to(ProcessDomainCamelRoute.CAMEL_ROUTE)
.end()
.end();
简单来说,域是一个json列表
我试图实现的是一种计算消息数量并能够在路由中读取消息的方法
我尝试将exchange.setProperty放入处理器(使用camelspitsize)、setHeader等。。。但我在阅读时总是得到一个空值
有人知道一种方法来实现这样的目标吗?某种。。。报告内容(失败、成功消息的数量),但在不同的路径中使用我在使用split时遇到了类似的问题。最终得到了一个非常简单的bean,其中包含一个hashmap,我将计数器存储在该hashmap中。
我正在调查,但它仅限于消费者。哇,这是一个很好的解决方案!我从昨天起就一直在努力解决这个问题,我已经设法使用AggregationStrategy解决了这个问题。这有点难看,但效果很好。只要我有一点空闲时间,我就会发布我的解决方案。谢谢@Radovan!