gpt4 book ai didi

routes - Mule 子流程与处理器链

转载 作者:行者123 更新时间:2023-12-02 10:24:49 25 4
gpt4 key购买 nike

Mule 中的子流和处理器链有什么区别?

据我使用过,两者都是可重复使用的。两者都使配置更具可读性。两者同步执行。两者都继承了触发流程中的处理策略和异常策略。

处理器链可以在流程以及全局消息处理器中定义。

除此之外,它们在行为和用法方面有何不同。

更新:具有命名处理器链的示例配置

<flow name="man-flow" >
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="myapp/collection-processor" doc:name="HTTP">
<byte-array-to-string-transformer></byte-array-to-string-transformer>
</http:inbound-endpoint>
<expression-component doc:name="Expression"><![CDATA[java.util.ArrayList list = new java.util.ArrayList();
list.add("First String");
list.add("Second String");
list.add("Third String");
payload = list;]]>
</expression-component>
<request-reply>
<vm:outbound-endpoint path="split"/>
<vm:inbound-endpoint path="processed"/>
</request-reply>
<set-payload value="#[payload.toString()]"/>
</flow>

<processor-chain name="sample-processor-chain">
<append-string-transformer message=" in splitter" />
<append-string-transformer message=" in processor-chain" />
</processor-chain>

<flow name="splitter-flow">
<vm:inbound-endpoint path="split"/>
<collection-splitter enableCorrelation="IF_NOT_SET"/>
<processor ref="sample-processor-chain"></processor>
<vm:outbound-endpoint path="aggregate"/>
</flow>

<flow name="aggregator-flow">
<vm:inbound-endpoint path="aggregate"/>
<collection-aggregator timeout="30000"/>
<vm:outbound-endpoint path="processed"/>
</flow>

最佳答案

processor-chain 的创建是为了解决某些消息处理器不允许多个嵌套处理器的问题。子流背后的思想是一系列消息处理器的宏扩展。如果你使用最新的 Mule 版本,你不应该过多使用处理器链,除了一些非常旧的结构。使用子流程可以让您获得更具可读性的代码,例如,包含重复的内容。

关于routes - Mule 子流程与处理器链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108888/

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