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

但注意:因爲有幾個線程會並行調用讀寫器(它們是單例實例),所以您必須確保兩者都是線程安全的。最簡單的做法是同步讀取和響應。讀寫器的寫入方法。