7.2 并行 Steps

只要需要并行的程序逻辑可以划分为不同的职责,并分配给各个独立的step,那么就可以在单个进程中并行执行。并行Step执行很容易配置和使用,例如,将执行步骤(step1,step2)和步骤3step3并行执行,则可以向下面这样配置一个流程:

  1. <job id="job1">
  2. <split id="split1" task-executor="taskExecutor" next="step4">
  3. <flow>
  4. <step id="step1" parent="s1" next="step2"/>
  5. <step id="step2" parent="s2"/>
  6. </flow>
  7. <flow>
  8. <step id="step3" parent="s3"/>
  9. </flow>
  10. </split>
  11. <step id="step4" parent="s4"/>
  12. </job>
  13. <beans:bean id="taskExecutor" class="org.spr...SimpleAsyncTaskExecutor"/>

可配置的 “task-executor” 属性是用来指明应该用哪个TaskExecutor实现来执行独立的流程。默认是SyncTaskExecutor,但有时需要使用异步的TaskExecutor来并行运行某些步骤。请注意,这项工作将确保每一个流程在聚合之前完成.并进行过渡。

更详细的信息请参考 Section 5.3.5, “Split Flows”.