2013-05-12 82 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