对Camel聚合拆分的最后一个索引执行操作

目的是在达到聚合的最后一个索引后,从EDI850Processor中清除类级别的属性。但是,当我们到达split的最后一个索引时,没有可用的属性可以精确地找到。

.split().jsonpath("$['ALL']").streaming().aggregate(AggregationStrategies.groupedExchange())               
    .constant("true")
    .completionSize(20)
    .completionTimeout(500)
    .bean(EDI850Processor.class,"process(*)")
    .marshal("edi850").id("marshal-edi850")
    // Do some final action if its last index of the split 
    .choice() 
    .when(simple("${property.CamelSplitComplete} == 'true'")) 
    .bean(EDI850Processor.class,"clear(*)")

可以交换的属性:

{CamelGroupedExchange=List<Exchange>(30 elements),CamelAggregatedCompletedBy=size,CamelMessageHistory=[DefaultMessageHistory[routeId=handle-EDI-processing,node=setHeader9],DefaultMessageHistory[routeId=handle-EDI-processing,node=bean5]],CamelExternalRedelivered=false,CamelAggregatedCorrelationKey=true,CamelAggregatedSize=30,CamelCreatedTimestamp=Tue Nov 05 20:45:03 IST 2019}

哪个属性可以识别最后一个索引?

xaut2009 回答:对Camel聚合拆分的最后一个索引执行操作

您可以在拆分后立即将EDI850Processor bean放入步骤中。然后,在完成所有拆分/聚合处理之后将调用它。

本文链接:https://www.f2er.com/3158138.html

大家都在问