我每天使用Spring批处理大量数据。所以我们准备好采用Spring批量分区概念。
以下是我的配置:`
<job id="test" xmlns="http://www.springframework.org/schema/batch">
<step id="masterStep">
<partition step="step2" partitioner="multiPartioner">
<handler grid-size="3" task-executor="taskExecutor" />
</partition>
</step>
</job>
<bean id="multiPartioner"
class="org.springframework.batch.core.partition.support.MultiResourcePartitioner"
scope="step">
<property name="resources" value="file:#{jobParameters[fileDirectory]}/*" />
</bean>
<bean id="taskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10" />
<property name="maxPoolSize" value="10" />
</bean>
<step id="step2" xmlns="http://www.springframework.org/schema/batch">
<tasklet transaction-manager="transactionManager">
<chunk reader="multiResourceItemReader" writer="testWriter"
commit-interval="20000">
</chunk>
</tasklet>
</step>
当我尝试将corePoolSize指定为4时,它运行正常,没有任何问题。但是如果我将corePoolSize的数量增加到10,它就会执行但是经过一段时间后说20分钟没有执行任何操作。没有记录或没有错误。没有关于正在发生的事情的状态。它没有进一步执行。
请帮我解决此问题。