2017-05-14 46 views
0

應用背景: 我正在使用異步項處理器並將委託作爲複合處理器傳遞。當我在處理器中遇到異常時,我的寫入錯誤偵聽器被調用。Spring批處理:在使用異步項處理器時獲取寫入錯誤偵聽器中的實際項目

onWriteError方法簽名(例外的例外,列表項)

問題: 名單上的所有項目,以onWriteError方法是今後的任務。如果我在將來的任務中調用「get」方法,它會給我造成寫入錯誤的異常。

如何在異步執行期間在編寫器監聽器方法中獲取原始項目?

我無法提供任何實際的代碼,因爲我的公司政策禁止我在網上論壇上發佈代碼。

回答

0

你不能。這就像回到過去。這是AsyncItemProcessor/AsyncItemWriter組合的缺點之一。正如Javadoc中指出,在AsyncItemProcessor

因爲未來在ItemWriter通常解開,有 生命週期和統計的限制(因爲框架不知道什麼 處理器的結果)。雖然不是詳盡的列表,但像StepExecution.filterCount這樣的東西不會反映已過濾的 項目的數量,並且不會調用ItemProcessListener.onProcessError(Object,Exception)將 。

相關問題