gpt4 book ai didi

java - Camel 收件人列表/多播与聚合策略

转载 作者:行者123 更新时间:2023-12-01 09:06:38 26 4
gpt4 key购买 nike

from("direct:processRequest").multicast(aggregationStrategy).parallelProcessing().
to("bean:abcService?method=getProductInfo",
"bean:xyzService?method=getProductInfo").end().
to("bean:transformerBean");

上面的路由工作完美,但我想在 to(..) 中使用动态 URL

<小时/>

因此,我将路线修改为以下内容:

路线:

from("direct:processRequest").multicast(aggregationStrategy).parallelProcessing().
bean(RecipientListBean.class).end().
to("bean:transformerBean");

RecipientListBean.java:

@Component
public class RecipientListBean {
@RecipientList
public String[] route(@Header("countryCode") String countryCode) {
if (StringUtils.equalsIgnoreCase(countryCode, "IN")) {
return new String[]{"bean:xyzService?method=getProductInfo",
"bean:abcService?method=getProductInfo"};
} else {
return new String[]{"bean:xyzService?method=getProductInfo"};
}
}
}
<小时/>

这里它有效,但聚合不起作用

最佳答案

我不确定multicast()如何与recipientList()交互,但后者已经支持多播/聚合和并行处理的概念。

所以,像这样的东西应该有效:

from("direct:processRequest")
.recipientList(header("myHeader"))
.aggregationStrategy(aggregationStrategy)
.parallelProcessing()
.to("bean:transformerBean");

此外,如果您更喜欢使用 @RecipientList 注释,它还支持并行处理和聚合策略的参数。

关于java - Camel 收件人列表/多播与聚合策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41218544/

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