2015-10-04 59 views
-1

我有如下定义弹簧批处理作业运行在多线程春季批处理作业:如何在同一时间

<batch:step id="step1"> 
     <batch:tasklet task-executor="simpleTaskExecutor"> 
      <batch:chunk reader="itemReader" processor="itemProcessor" 
       writer="itemWriter" > 
      </batch:chunk> 
     </batch:tasklet> 
    </batch:step> 
    <bean id="itemReader" class="CustomReader"> 
</bean> 

定制阅读器,从数据库中读取一行,并把它传递给处理器进行进一步的处理。

我的问题是我想同时有多个线程同时运行这个工作(每个读取一行和进程)。基于我使用taskExecutor的文档,但它没有奏效。

注意:我的场景不适合partitioner。

回答

1

你是什么意思的“不”工作?

如果你想读取和处理每个线程的一个条目,你需要有一个“commit-interval”。 (http://docs.spring.io/spring-batch/reference/html/configureStep.html

但注意:因为有几个线程会并行调用读写器(它们是单例实例),所以您必须确保两者都是线程安全的。最简单的做法是同步读取和响应。读写器的写入方法。