有人可以解释当一个流用flow-ref调用另一个流时,Mule处理策略是如何工作的吗?
情况1.
假设我们有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"/>
Run Code Online (Sandbox Code Playgroud)
flowA正在从队列中读取并调用flowB
<flow-ref name="flowB" doc:name="flowB"/>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在flowA和flowB之间创建另一个队列,以便所有的flowB调用在一个线程中逐个执行?
或者flowB将遵循flowA策略,可能同时处理10条消息?
案例2.
flowA是从队列读取的同步流.它调用异步flowB,允许1个最大线程,如下所示:
<queued-asynchronous-processing-strategy name="procB" maxThreads="1" doc:name="procB"/>
Run Code Online (Sandbox Code Playgroud)
异步块有自己的策略procC,允许10个线程:
<queued-asynchronous-processing-strategy name="procC" maxThreads="10" doc:name="procC"/>
Run Code Online (Sandbox Code Playgroud)
flowA像这样调用flowB:
<async doc:name="Async" processingStrategy="procC">
<flow-ref name="flowB" doc:name="flowB"/>
</async>
Run Code Online (Sandbox Code Playgroud)
问题类似:
在这种情况下,异步块和flowB之间是否会创建另一个队列,以便所有的flowB调用在一个线程中逐个执行?
或者flowB将遵循procC策略,同时处理10条消息?