gpt4 book ai didi

java - Apache Camel spring splitter 与聚合器 xml 并行处理不像 Java DSL 那样工作

转载 作者:行者123 更新时间:2023-11-30 06:50:03 26 4
gpt4 key购买 nike

下面的 java DSL 的等效 xml 是什么,请建议

 public class OrderRouter1 extends RouteBuilder {

@Override
public void configure() throws Exception {

from("direct:processOrder")
.split(body().method("getItems"), new OrderItemStrategy())
.parallelProcessing()
.to("direct:processItem")
.end();


from("direct:processItem")
.choice()
.when(body().method("getType").isEqualTo("Book"))
.to("bean:itemService?method=processBook").
otherwise()
.to("bean:itemService?method=processPhone");
}

}

我尝试使用下面的 xml 配置,而不使用聚合器,但是当我启用并行处理时,它会按顺序工作。

 <camelContext id="orderCtx" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:processOrder" />
<split parallelProcessing="true">
<simple>${body}</simple>
<to uri="direct:processItem" />
</split>

</route>

<route>
<from uri="direct:processItem" />
<bean beanType="com.apache.camel.aggregrator.ItemSvc" method="processBook"/>
<bean beanType="com.apache.camel.aggregrator.ItemSvc" method="processPhone"/>
</route>


</camelContext>

最佳答案

我建议对上层路由“processOrder”进行以下更改

<split parallelProcessing="true">
<simple>${body.getItems}</simple>
<to uri="direct:processItem" />
</split>

如果您想再次使用 AggregationStrategy,您可以将 strategyRef="yourBean" 添加到拆分器

关于java - Apache Camel spring splitter 与聚合器 xml 并行处理不像 Java DSL 那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43000207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com