from("seda:start)
.multicast(new GroupedBodyAggregationStrategy())
.parallelProcessing()
.to("seda:process1", "seda:process2")
.end()
.to("seda:join");
该计划是让 process1 和 process2 并行运行,并使其输出在连接端点上可用。
如果在“direct”上,上面的工作正常,但在“seda”上,行为是“join”立即被调用,即使 process1 和 process2 仍在进行中。
我尝试将以下选项添加到 process1 和 process2:
to("seda:process1?waitForTaskToComplete=Always", "seda:process2?waitForTaskToComplete=Always")
它现在表现良好(我可以在连接端点上检索 process1 和 process2 输出),但整个请求链正在排队并且不是并行运行。例如,我在“开始”端点上并行发送了两条消息,只有在另一条完整链完成后才会触发整个链。
有任何想法吗?
您可以使用启动和加入组件seda
。而 process1 和 process2 使用multicast
with paralellProcessing
它将负责并行运行这些进程。
而对于seda:start
使用类似的东西,
from("seda:start?concurrentConsumers=10")
这将开始并行接受 10 个请求。欲了解更多信息,请查看http://camel.apache.org/seda.html http://camel.apache.org/seda.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)