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。
我的流程正在调用多个批处理。我想按顺序处理批次,即
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。