有什么方法可以记录在写入 10 个项目大小的块期间失败的确切项目?
有没有办法在 ItemWriteListener 的 onWriteError 方法中捕获它?是否可以通过扩展 ItemWriter 接口来知道这一点?
谢谢和问候,尼克
有什么方法可以记录在写入 10 个项目大小的块期间失败的确切项目?
有没有办法在 ItemWriteListener 的 onWriteError 方法中捕获它?是否可以通过扩展 ItemWriter 接口来知道这一点?
谢谢和问候,尼克
您可以使用 Integer.MAX_VALUE = 2.147.483.647配置跳过逻辑
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader" writer="itemWriter"
commit-interval="10" skip-limit="2147483647">
<skippable-exception-classes>
<include class="org.springframework.batch.item.file.FlatFileParseException"/>
</skippable-exception-classes>
</chunk>
</tasklet>
<listeners>
<listener ref="customSkipListener" />
</listeners>
</step>
并使用跳过侦听器(也参见那里的注释)在写入期间记录坏项目
如果您的编写器已经是自定义实现,则可以将其扩展为仅响应 OnSkipInWrite 的侦听器,只需添加带有 @OnSkipInWrite 的方法并将编写器注册为侦听器(*)
(*) 注意 - 如果作者也是一个流,不要注册为监听器,流会自动注册为(步骤)监听器