現在の状況があります。私はApache Camelを使用し、大きなファイルを小さな交換用に分割し(スプリッターを使用、以下を参照)、それらを検証します。次に、集約メッセージが必要ですが、集約器を使用しており、セットアップの完了サイズなどが必要です。制限を設定せずに、現在のドキュメントからすべての交換を集約できますか?
私のルート:
from("file:data?noop=true?move={{package.success}}&moveFailed={{package.failed}}")
.transacted()
.split(ExpressionBuilder.beanExpression(new InvoiceIteratorFactory(), "createIterator"))
.streaming()
.process(new ValidatorProcessor())
.choice()
.when(new Predicate() {
@Override
public boolean matches(Exchange exchange) {
return exchange.getContext().getProperty(ValidatorProcessor.STATE_PROPERTY).equals(ValidatorProcessor.STATE_SUCCESS);
}
})
.to("jpa:/...")
.otherwise()
.aggregate(body(String.class), new MyAggregationStrategy()).completionSize(????)
.to("smtps://smtp.gmail.com?username={{remote.e-mail}}&password={{remote.password}}");
アグリゲーターを設定するには、交換の数または時間を設定するために使用しますが、交換がいくつになるかわかりません。