Spring batch 跳过Spring批处理中的FlatFileParseException或特定异常

Spring batch 跳过Spring批处理中的FlatFileParseException或特定异常,spring-batch,Spring Batch,嗨,我需要读取平面文件的(n个)。在文件读取过程中,如果收到FileParseException:from reader,则停止当前文件读取并安全出来,处理下一个文件并继续执行作业。目前我有这个xml配置,但我不想使用它,因为我没有真正的跳过限制计数。使用ItemReaderListener是否有办法处理此情况 <chunk reader="flatFileItemReader" writer="itemWriter" commit-interval="10" s

嗨,我需要读取平面文件的(n个)。在文件读取过程中,如果收到FileParseException:from reader,则停止当前文件读取并安全出来,处理下一个文件并继续执行作业。目前我有这个xml配置,但我不想使用它,因为我没有真正的跳过限制计数。使用ItemReaderListener是否有办法处理此情况

<chunk reader="flatFileItemReader" writer="itemWriter"
             commit-interval="10" skip-limit="2">
         <skippable-exception-classes>
            <include class="org.springframework.batch.item.file.FlatFileParseException"/>
         </skippable-exception-classes>

您可以使用策略,而不是指定跳过限制。有几种现成的跳过策略,听起来你总是想跳过(没有限制),使用AlwaysSkipItemSkipPolicy

配置示例:

<batch:skip-policy>   

     <bean:bean class="org.springframework.batch.core.step.skip.AlwaysSkipItemSkipPolicy"/>

</batch:skip-policy> 

谢谢Doeleman,根据您的输入,我可以使用AlwaysSkipItemSkipPolicy跳过
异常这就是我如何实现的

public class SkipPolicy extends  AlwaysSkipItemSkipPolicy  {

    @Override
     public boolean shouldSkip(java.lang.Throwable t, int skipCount){

        if(t instanceof NonSkippableReadException){
            return true;
        }
        return false;

     }
}

xml config.

<batch:chunk reader="cvsFileItemReader"  writer="mysqlItemWriter" 
                    commit-interval="2" skip-policy="mySkipPolicy">

<bean id="mySkipPolicy" class="com.model.SkipPolicy"/>
公共类SkipPolicy扩展了AlwaysSkipItemSkipPolicy{
@凌驾
公共布尔值shouldSkip(java.lang.Throwable t,int skipCount){
if(非KippableReadException的t实例){
返回true;
}
返回false;
}
}
xml配置。

感谢Doeleman的宝贵意见,这可能是重复的。你的假设是正确的,只是我总是想跳过一些特殊的例外。请分享一些例子。只需在chunk元素中添加一个可跳过的异常类部分,如: