Mule 多批处理

Mule multiple Batch processing

我的流程正在调用多个批处理。我想按顺序处理批次,即

Batch-1->Batch-2->Batch-3->...

<quartz:inbound-endpoint jobName="Fetch" repeatInterval="0" repeatCount="0" responseTimeout="10000" doc:name="Quartz" startDelay="5000">
    <quartz:event-generator-job/>
</quartz:inbound-endpoint>
<scatter-gather doc:name="Scatter-Gather">
    <processor-chain doc:name="Processor Chain">
        <batch:execute name="Batch-1" doc:name="Batch-1"/>
        <logger message="==Batch-1 END==" level="INFO" doc:name="Logger"/>
        <batch:execute name="Batch-2" doc:name="Batch-2"/>
     </processor-chain>
</scatter-gather>

这里,进入Batch-1,进入batch-1的输入状态,输入阶段结束后,线程进入Batch-2,进入Batch-2的输入阶段。它不会等待 Batch-1 每个批次的不同步骤来完成和处理 Batch-2。我该如何处理? 我尝试在流程链中的每批次分别使用两个流程链,但没有成功。没有分散聚集我面临同样的问题。

批处理流程:

<batch:job name="Batch-1">
    <batch:input>
        <logger message="==Invoke query====" level="INFO" doc:name="Logger"/>
    </batch:input>
    <batch:process-records>
        <batch:step name="Batch_Step">                
            <flow-ref name="sfdc-query" doc:name="Flow Reference"/>
        </batch:step>
    </batch:process-records>
    <batch:on-complete>
        <logger level="INFO" doc:name="Logger" message="On Complete:#[message.payload]"/>           
    </batch:on-complete>
</batch:job>

EDIT

现在,我有 5 个进程,A、B、C、D、E。它应该首先处理 A 然后下一个过程是并行的所有(B,C,D)。一旦 B 和 D 完成后,最后应该处理 E。 C 可以与 B & D 并行处理。如何映射这个?

在Batch-1 Oncomplete Phase中,使用VM调用第二个流程(创建新流程),在第二个流程中使用batch Execute调用Batch-2。