SpringBatch是spring框架下的一个子模块,用于处理批处理的批次框架。
本文主要分析SpringBatch中的retry和skip机制的实现。
先简单说明下SpringBatch在SpringBoot中的使用。
如果要在springboot中使用batch的话,直接加入以下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
复制代码
然后使用注解开启Batch模块:
...
@EnableBatchProcessing
public class Application { ... }
复制代码
之后就可以注入JobBuilderFactory和StepBuilderFactory:
@Autowired
private JobBuilderFactory jobs;
@Autowired
private StepBuilderFactory steps;
复制代码
有了这2个factory之后,就可以build job。
SpringBatch中的相关基础概念比如ItemReader、ItemWriter、Chunk等本文就不介绍了。
我们以FlatFileItemReader作为reader,一个自定义Writer用于打印reader中读取出来的数据。
这个定义的writer遇到good job这条数据的时候会报错,具体逻辑如下:
@Override
public void write(List<? extends String> items) throws Exception {
System.out.println("handle start =====" + items);
for(String a : items) {
if(a.equals("good job")) {
throw new Exception("custom exception