3

有什么方法可以记录在写入 10 个项目大小的块期间失败的确切项目?

有没有办法在 ItemWriteListener 的 onWriteError 方法中捕获它?是否可以通过扩展 ItemWriter 接口来知道这一点?

谢谢和问候,尼克

4

1 回答 1

1

您可以使用 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 的方法并将编写器注册为侦听器(*)

(*) 注意 - 如果作者也是一个流,不要注册为监听器,流会自动注册为(步骤)监听器

于 2011-07-21T07:57:26.657 回答