Apache camel ActiveMQ/Camel:生成多个路由,等待所有路由完成

Apache camel ActiveMQ/Camel:生成多个路由,等待所有路由完成,apache-camel,activemq,Apache Camel,Activemq,我是activeMQ/Camel的新手,请耐心等待 在驼峰路线中,我使用拆分器生成多个子路线。这些路由中的每一个都将使用一些外部API来完成某些工作,并进行轮询,直到工作完成。我有那么远 现在我需要触发最后一个操作来收集所有这些路由的结果。我将如何通过骆驼/AMQ方式实现这一点 我曾考虑在每个子路由中向AMQ队列发布一条消息,但我还没有找到一种方法,在最终骆驼路由中使用它之前,等待该队列中接收到N条消息 谢谢。如果需要从拆分器子路由收集所有结果,并在所有子路由完成后对这些结果执行某些操作,则可以

我是activeMQ/Camel的新手,请耐心等待

在驼峰路线中,我使用拆分器生成多个子路线。这些路由中的每一个都将使用一些外部API来完成某些工作,并进行轮询,直到工作完成。我有那么远

现在我需要触发最后一个操作来收集所有这些路由的结果。我将如何通过骆驼/AMQ方式实现这一点

我曾考虑在每个子路由中向AMQ队列发布一条消息,但我还没有找到一种方法,在最终骆驼路由中使用它之前,等待该队列中接收到N条消息


谢谢。

如果需要从拆分器子路由收集所有结果,并在所有子路由完成后对这些结果执行某些操作,则可以在拆分器上使用聚合策略()

通过使用聚合策略,拆分后的交换将包含所有子路由的结果

使用Java DSL的示例:

.split(expression, new GroupedExchangeAggregationStrategy())
   ...
.end()
GroupedExchangeAgregationStrategy将所有拆分的交换机聚合到一个列表中。如果需要,您可以使用另一个预定义的聚合策略,也可以通过扩展org.apache.camel.processor.aggregate.AggregationStrategy来创建一个自定义的聚合策略