Spring批处理 - 消失的线程使用Partitioner时

时间:2014-07-03 19:32:26

标签: spring batch-processing spring-batch

我每天使用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分钟没有执行任何操作。没有记录或没有错误。没有关于正在发生的事情的状态。它没有进一步执行。

请帮我解决此问题。

0 个答案:

没有答案