스프링 배치에서 단일 작업을 사용하여 여러 단계를 병렬로 실행하려고합니다. 다음은 내 구성이 어떻게 나타나는지 보여줍니다.스프링 배치 2.1.8 여러 단계 병렬 실행 제한 있음
<job id="gmegdc1" xmlns="http://www.springframework.org/schema/batch" >
<split id="splitStep" task-executor="taskExecutor">
<flow>
<step id="step1" parent="simpleStep1">
<tasklet ref="gdcTasklet1" task-executor="taskExecutor1" throttle-limit="6" />
</step>
</flow>
<flow>
<step id="step2" parent="simpleStep2">
<tasklet ref="gdcTasklet2" task-executor="taskExecutor2" throttle-limit="6" />
</step>
</flow>
<flow>
<step id="step3" parent="simpleStep3">
<tasklet ref="gdcTasklet3" task-executor="taskExecutor3" throttle-limit="6" />
</step>
</flow>
<flow>
<step id="step4" parent="simpleStep4">
<tasklet ref="gdcTasklet4" task-executor="taskExecutor4" throttle-limit="6" />
</step>
</flow>
</split>
</job>
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="25" />
<property name="maxPoolSize" value="25" />
</bean>
<bean id="taskExecutor1" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
<bean id="taskExecutor2" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
<bean id="taskExecutor3" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
<bean id="taskExecutor4" class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
각 단계마다 6 개의 스레드를 실행하고 싶습니다. 이 구성을 사용하면 작업을 시작할 때마다 단계별로 8 개의 스레드 만 동시에 실행되었습니다. 이 때문에 일부 단계가 실행되지 않았으며 또한 모든 스레드가 실행될 수있는 잠재력을 얻고 있습니다. 여기서 무엇이 잘못 될지 확실하지 않습니다.
파티셔닝을하셨습니까? http://static.springsource.org/spring-batch/trunk/reference/html/scalability.html#partitioning을 참조하십시오. –