gpt4 book ai didi

mule - flow-ref 和处理策略

转载 作者:行者123 更新时间:2023-12-03 12:08:31 25 4
gpt4 key购买 nike

有人可以解释当一个流使用 flow-ref 调用另一个流时 Mule 处理策略是如何工作的吗?

案例一。
假设我们有 2 个流:flowA 和 flowB,处理策略为 procA 和 procB,两者都是异步的,但 procA 允许 10 个线程,而 procB 只有 1 个。

<queued-asynchronous-processing-strategy name="procA" maxThreads="10" doc:name="procA"/>
<queued-asynchronous-processing-strategy name="procB" maxThreads="1" doc:name="procB"/>

flowA 正在从队列中读取并调用 flowB
<flow-ref name="flowB" doc:name="flowB"/>

在这种情况下会在flowA和flowB之间创建另一个队列,以便所有的flowB调用在单个线程中一一执行吗?
或者 flowB 将遵循 flowA 策略,可能同时处理 10 条消息?

案例2。

flowA 是从队列中读取的同步流。
它正在调用一个异步 flowB,允许 1 个最大线程,如下所示:
<queued-asynchronous-processing-strategy name="procB" maxThreads="1" doc:name="procB"/>

异步块有它自己的策略 procC,允许 10 个线程:
<queued-asynchronous-processing-strategy name="procC" maxThreads="10" doc:name="procC"/>  

flowA 像这样调用 flowB:
<async doc:name="Async" processingStrategy="procC">
<flow-ref name="flowB" doc:name="flowB"/>
</async>

问题类似:
在这种情况下,是否会在 async 块和 flowB 之间创建另一个队列,以便所有 flowB 调用都在单个线程中依次执行?
或者 flowB 将遵循 procC 策略,同时处理 10 条消息?

最佳答案

案例一。

将为流 B 创建另一个具有 1 个线程的队列。

VM 接收器池线程-> procA 中的 SEDA 线程-> procB 中的 SEDA 线程

案例2。

如上,将为流B创建另一个具有1个线程的队列

VM 接收器池线程 -> procC 中的 SEDA 线程 -> procB 中的 SEDA 线程

Mule documentation 中涵盖了流处理策略。但我觉得这并没有太大用处。在 Anypoint Studio 中设置这些流并使用记录器确定在特定时间运行的线程非常简单。

关于mule - flow-ref 和处理策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278159/

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