2013-03-14 64 views
0

我有春天批次就地,我想配置一個重試邏輯我得到了以下配置:我怎麼能確認重試工作在春季批次impelmentation

<step id="roundUpMonthlyJobFetchUsers"> 
      <tasklet> 
       <chunk reader="roundUpMonthlyItemReader" processor="roundUpMonthlyItemProcessor" 
         writer="roundUpMonthlyItemWriter" commit-interval="1" retry-limit="3" > 
        <retryable-exception-classes> 
         <include class="java.io.IOException" /> 
        </retryable-exception-classes> 
       </chunk> 
      </tasklet> 
     <end on="COMPLETED"/> 
    <fail on="FAILED"/> 
</step> 

如何cofirm這個公司實際上是試圖要爲atleast 3次做手術時遇到IOException異常

回答

0

更改這個類roundUpMonthlyItemReader

要登錄入口的東西,然後拋出IOException異常每次,然後檢查日誌:)

log.info("Reading Monthly round up"); 
throw new IOException("Dummy IOException"); 

如果你想做到這一點在單元測試中,你應該能夠使用的Mockito到

  • 模擬讀者或作家拋出IOException
  • 確保它被稱爲3倍
+0

我已經嘗試過,但是當我拋出異常它出現在日誌只有一個不是三次。我不知道如果我需要實現retrytemplate,並把邏輯放在那裏,我想在重試中運行,它沒有任何意義,因爲當然我想運行相同的步驟,但只是困惑,因爲我記錄我只看到這個異常一次是重試或不重試:S – 2013-03-14 11:45:20

+0

及其roundUpMonthlyItemProcessor,我希望它重試。 – 2013-03-14 11:52:09