计算骆驼并行拆分中成功处理的邮件数

时间:2020-04-16 05:59:31

标签: java apache-camel

我要挖骆驼,以便并行处理大量记录。我有这样的东西:

     from(CAMEL_START_ROUTE_CTE)       
         .multicast().parallelProcessing()
            .to(CAMEL_PROCESS_DOMAINS_ROUTE)
            .to(CAMEL_PROCESS_OTHERS_ROUTE)
         .end()
         .onCompletion()
         .to(EndCamelRouteBuilder.CAMEL_ROUTE);

CAMEL_START_ROUTE_CTE在

timer:foo?delay=100&repeatCount=1

然后,CAMEL_PROCESS_DOMAINS_ROUTE看起来像这样:

 from(CAMEL_PROCESS_DOMAINS_ROUTE)
         .setHeader("domains").constant(config.getDomains())
             .split(header("domains"))          
             .parallelProcessing()
                .to(ProcessDomainCamelRoute.CAMEL_ROUTE)

             .end()
         .end();

简化,domains是一个json列表。

我想要实现的是一种计数消息数量并能够在EndCamelRoute路由中读取消息的方法

我已经尝试使用exchange.setProperty进入处理器(使用CamelSplitSize),setHeader等...,但是在读取时我总是得到null。

有人知道实现这种目标的方法吗?某种...正在报告的东西(失败,成功的消息数),但是消耗的路径不同

1 个答案:

答案 0 :(得分:1)

我在使用split时遇到了类似的问题。最终有了一个非常简单的bean,在其中存储了我存储计数器的hashmap。 我一直在研究MicroMeter Component,但它仅是消费者。