SpringBatch中的retry和skip机制实现分析

本文深入剖析SpringBatch的retry和skip机制。通过示例展示如何在SpringBoot中配置和使用这些机制,以及它们在处理异常时的不同行为。在job2中,skip机制允许作业继续执行,而在job3中,retry机制尝试多次后转为skip操作。SpringBatch的retry基于Spring的retry模块,skip策略默认为LimitCheckingItemSkipPolicy。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值