...
Option | Default | Description |
---|---|---|
batchSize | 100 | The in batch size. This is the number of incoming exchanges that is processed by the aggregator and when this threshold is reached the batch is completed and send. Camel 1.6.2/2.0: You can disable the batch size so the Aggregator is only triggered by timeout by setting the |
outBatchSize | 0 | Camel 1.5: The out batch size. This is the number of exchanges currently aggregated in the |
batchTimeout | 1000L | Timeout in millis. How long should the aggregator wait before its completed and sends whatever it has currently aggregated. |
groupExchanges | false | Camel 2.0: If enabled then Camel will group all aggregated Exchanges into a single combined |
batchConsumer | false | Camel 2.0: This option is if the exchanges is coming from a Batch Consumer. Then when enabled the Aggregator will use the batch size determined by the Batch Consumer in the message header |
AggregationCollection and AggregationStrategy
...
Wiki Markup |
---|
{snippet:id=e2|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/aggregator/AggregateGroupedExchangeTest.java} |
Using Batch Consumer
Available as of Camel 2.0
The Aggregator can work together with the Batch Consumer to aggregate the total number of messages that the Batch Consumer have reported. This allows you for instance to aggregate all files polled using the File consumer.
For example:
Code Block | ||||
---|---|---|---|---|
| ||||
from("file://inbox")
.aggregate(xpath("//order/@customerId"), new AggregateCustomerOrderStrategy()).batchConsumer().batchTimeout(60000).to("bean:processOrder");
|
When using batchConsumer
Camel will automatic adjust the batchSize according to reported by the Batch Consumer in this case the file consumer.
So if we poll in 7 files then the aggregator will aggregate all 7 files before it completes. As the timeout is still in play we set it to 60 seconds.
Include Page | ||||
---|---|---|---|---|
|
...