如果验证计数超过预定义的计数,Spring Batch中是否有任何方法可以阻止批处理进一步继续。
我目前正在从项目处理器中抛出验证异常。但它只是将项目从发送到项目编写者而不是停止批处理。
由于
答案 0 :(得分:2)
如果您使用的是流畅的api(StepBuilder),您可以按如下方式设置:
@Bean
public Step step(){
return stepBuilderFactory.get("step")
.<... , ...>chunk(1)
.reader(reader())
.processor(processor())
.writer(writer())
.faultTolerant()
.skipLimit(10)
.build();
}
这将实例化为LimitCheckingItemSkipPoliciy。
您还可以使用skipPolicy方法
实例化或定义自己的SkipPolicy ...
.faultTolerant()
.skipPolicy(mySkipPolicy)
...
如果要在XML配置中设置skiplimit:
<step id="step1">
<tasklet>
<chunk reader="flatFileItemReader" writer="itemWriter"
commit-interval="10"
skip-limit="10">
<skippable-exception-classes>
<include class="..."/>
</skippable-exception-classes>
</chunk>
</tasklet>
</step>