我的流正在调用多个批处理过程。我想按顺序处理这批货。
批-1->批-2->批-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>在这里,它进入批处理-1,进入批-1的输入状态,在输入阶段结束后,线程进入批-2,然后进入批-2的输入阶段。它不会等待批处理-每个批处理的不同步骤完成和处理批处理-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>编辑
现在,我有5个过程,A,B,C,D,E,它应该先处理A,然后下一个过程是(B,C,D)的所有并行过程。在B和D完成后,最后E应该处理。C可以与B& D并行处理,如何映射这一点?
发布于 2015-07-02 00:25:04
在批处理-1 Oncomplete Phase中,使用VM调用第二个流(创建新流),在第二个流中使用批处理执行来调用批处理-2。
https://stackoverflow.com/questions/31171432
复制相似问题