2014-01-15 82 views
0

我正在遷移已寫入Spring批處理的Java應用程序。此應用程序將在2個不同的環境中進行數據遷移。該應用程序的設計如下使用Spring批量數據遷移

1)從源數據庫讀取一組用戶標識,基於某些標誌。

2)從每個用戶的源環境中的3個不同的數據庫中讀取用戶特定的數據。

3)在每個用戶的目標數據庫中寫入數據。

我還需要實現並行處理,以便每次運行10個或更多線程,並且每個線程將負責遷移個別用戶的數據。

我完全是新的春天,所以有問題,可視化我的配置xml的結構。我正在考慮首先讀取一組用戶標識,然後將其傳遞給第二步,這將負責讀取用戶特定的數據並編寫它。但是我在實施相同的過程中遇到問題。這將真正幫助我,如果有人能建議我在春天批次的情況下相同的結構,並行處理

+0

這不是步驟。我會用讀者,處理器和作者創建一個單一的步驟。 1.將是讀者,2.將是一個ItemProcessor,3.將是作者。所以不要認爲步驟,認爲大塊。 –

回答

0

我希望這是一個單步工作:

<job> 
    <step id="step1"> 
     <tasklet> 
      <chunk reader="flagReader" processor="userSpecificDataProcessor" writer="databaseWriter" commit-count="10"/> 
     </tasklet> 
    </step> 
</job> 

的flagReader會根據標誌讀入用戶id,處理器將通過id查找額外的數據,並構建填充該數據的適當對象。作者會將結果對象寫入數據庫。

關於並行化的要求,請看看分區的步驟。我會先從基礎開始,然後解決並行化問題(一旦基本作業正常運行,很容易添加)。