当spring batch在处理批量时,有时因为某些原因,使批量在第一次执行时出错,比如锁表之类的,出错之后,可以进行多次执行出错的地方。
//job
@Bean
public Job fileReaderJob(){
return jobBuilderFactory.get("fileReaderJob")
.start(chunkStep())
.build();
}
//step
@Bean
public Step chunkStep(){
return stepBuilderFactory.get("chunkStep1")
.chunk(3)
.reader(fileItemReader())
.writer(list -> list.forEach(System.out::println))
.faultTolerant()
.retry(FlatFileParseException.class) //遇到FlatFileParseException类型的异常时,运行重复执行3次,如果3次都失败,批量才失败
.retryLimit(3)
.noRetry(NullPointerException.class) //遇到NullPointerException类型的异常时,不重复执行
.allowStartIfComplete(true)
.build();
}