2013-05-12 75 views
1

在Spring批處理作業中,我正在寫目標文件(使用FlatFileItemWriter)並將輸入記錄「process indicator」字段更新爲「processed」/「failed」(使用JdbcBatchItemWriter)。在「商品交易」中做到這一點的最佳方法是什麼?Spring批處理指標模式

  1. 使用CompositeItemWriter(代表FlatFileItemWriter爲 書面文件,並JdbcBatchItemWriter更新「過程 指標」
  2. 使用ItemWriteListener方法「afterWrite」和「onWriteError」更新「過程指標」

回答

2

推薦的方法是使用ChunkListener#afterChunk更新這樣的一個標誌,這使得它可以從捲入了你提出的其他兩個選項任何重試等邏輯分離。

+0

但是,如何識別'ChunkListener'中的處理項? 'afterChunk'方法是無參數的,因此不會像'ItemWriteListener'那樣注入項目。 – timomeinen 2013-11-17 17:45:29

+0

儘管如此,但您通常會使用ChunkListener#beforeChunk()標記要處理的項目。然後,ChunkListener#afterChunk()在塊完成後將它們標記爲處理。 – 2013-11-19 01:58:30

+0

對不起,我不明白:'chunkListener#beforeChunk()'也是無參數的。我如何從ChunkListener中識別要處理的項目?該塊可以有多個項目,但它們不會被注入到Listener中。 – timomeinen 2013-11-21 09:51:43