【发布时间】:2014-05-29 21:07:47
【问题描述】:
假设如果我有一个路由,可以将输入多播到多个处理器。
目前的行为:
控制台等待来自System.in流的一些输入,一旦给出一些输入,多播就完成了,但主线程等待直到聚合完成。
预期行为:
我想要实现的是主线程不应该等待聚合完成而是应该返回并且主线程应该开始监听来自控制台的新输入,因为路由是 InOnly 类型并且不应该产生任何输出。
我尝试在路由中使用parallelProcessing="true" 和setExchangePattern pattern="InOnly" 来影响行为,但多播处理器总是等待聚合任务完成,然后主线程才会从控制台获取其他输入。
<route>
<from uri="stream:in?promptMessage=Enter something: "/>
<setExchangePattern pattern="InOnly"/>
<multicast parallelProcessing="true">
<pipeline>
<transform>
<simple>${body.toUpperCase()}</simple>
</transform>
<!-- and then print to the console -->
<to uri="stream:out"/>
</pipeline>
<to uri="stream:out"/>
</multicast>
</route>
这可以通过多播实现还是有其他方法可以实现?
【问题讨论】:
标签: java apache-camel multicast