在弹簧批处理中写入时在一个块中指向失败项的方法

时间:2011-07-21 06:50:12

标签: spring-batch

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

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

谢谢和问候, 尼克

1 个答案:

答案 0 :(得分:1)

您可以使用Integer.MAX_VALUE = 2.147.483.647配置skip logic

<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>

并使用skip listener(请参阅那里的注释)在写作过程中记录不良内容

如果你的编写器已经是一个自定义实现,它可以扩展为只响应OnSkipInWrite的监听器,只需用@OnSkipInWrite添加方法并将编写器注册为监听器(*)

(*)要注意 - 如果编写器也是流,请不要注册为侦听器,流会自动注册为(步骤)侦听器