Processing aggregated messages in parallel
The default behavior of an Aggregator is to process the aggregated exchange through the steps defined within the aggregate
block using a single thread. This is either the thread that pushes the last message into the block that triggers the completion condition, or the timer thread described in the Aggregating with timeouts recipe. This recipe will describe how to modify the Aggregator so that the aggregated messages can be processed in parallel.
Getting ready
The Java code for this recipe is located in the org.camelcookbook.splitjoin.aggregateparallel
package. The Spring XML example is located in src/main/resources/META-INF/spring/aggregateParallelProcessing-context.xml
.
How to do it...
Inside your aggregate
statement, define a parallelProcessing
attribute set to true
. The attribute can be used alongside any aggregation condition.
In the XML DSL, this is written as:
<from uri="direct:in"/> <aggregate strategyRef="setAggregationStrategy" ...