SpringBoot接口或方法进行失败重试的实现方式

 更新时间:2024年07月23日 09:25:27   作者:会飞的青蛙~  
为了防止网络抖动,影响我们核心接口或方法的成功率,通常我们会对核心方法进行失败重试,如果我们自己通过for循环实现,会使代码显得比较臃肿,所以本文给大家介绍了SpringBoot接口或方法进行失败重试的实现方式,需要的朋友可以参考下

1. 前言

为了防止网络抖动,影响我们核心接口或方法的成功率,通常我们会对核心方法进行失败重试,如果我们自己通过for循环实现,会使代码显得比较臃肿

2. Springboot提供了比较优雅的实现方式

第一步:pom中引入spring-retry 因为retry是基于aop实现的 所以这里还需要引入spring aop

<dependency>
    <groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

第二步:启动类上开启spiring-retry模块

第三步:在需要失败重试方法上加@Retryable注解

参数

value:可以设置对哪些异常进行失败重试
maxAttempts:设置失败重试的次数
backoff:设置重试等待策略
delay:失败重试时间间隔
multiplier:设置延迟倍数

例如:我们delay设置的是1000 multipler设置的是2当出现异常时,会间隔1秒,2秒,4秒进行重试

第四步:当重试次数耗尽还抛出异常时,我们可以通过@Recover注解进行失败回调

拿到我们的异常值和方法的入参进行额外的处理,

第五步:我们可以看到,重复调用了五次,最后进入了我们的失败调用方法中

注意:

  1. @Recover方法的返回值,必须与@Retryable方法的返回值一致
  2. @Recover方法的第一个参数必须是Throwable类型的
  3. 回调方法与重试方法需要在同一个实现类里面
  4. 如果同一个类有多个回调方法,我们可以通过@Retryable注解的recover属性,指定回调方法名称
  5. spring-retry是基于aop实现的,静态方法会导致aop失效 更多aop的失效场景请看下期

到此这篇关于SpringBoot接口或方法进行失败重试的实现方式的文章就介绍到这了,更多相关SpringBoot接口进行失败重试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 10个SpringBoot参数验证你需要知道的技巧分享

    10个SpringBoot参数验证你需要知道的技巧分享

    参数验证很重要,是平时开发环节中不可少的一部分,那么在Spring Boot应用中如何做好参数校验工作呢,本文提供了10个小技巧,你知道几个呢
    2023-03-03
  • 让Java后台MySQL数据库能够支持emoji表情的方法

    让Java后台MySQL数据库能够支持emoji表情的方法

    最近开发的iOS项目因为需要用户文本的存储,自然就遇到了emoji等表情符号如何被mysql DB支持的问题。下面这篇文章主要介绍了关于让Java后台MySQL数据库能够支持emoji表情的方法,需要的朋友可以参考下。
    2017-03-03
  • 详解Spring Bean的配置方式与实例化

    详解Spring Bean的配置方式与实例化

    本文主要带大家一起学习一下Spring Bean的配置方式与实例化,文中的示例代码讲解详细,对我们学习Spring有一定的帮助,需要的可以参考一下
    2022-06-06
  • Idea插件安装和管理方式

    Idea插件安装和管理方式

    这篇文章主要介绍了Idea插件安装和管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java Validation Api如何实现自定义注解

    Java Validation Api如何实现自定义注解

    这篇文章主要介绍了Java Validation Api如何实现自定义注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • java读写excel文件实现POI解析Excel的方法

    java读写excel文件实现POI解析Excel的方法

    在日常工作中,我们常常会进行Excel文件读写操作,这篇文章主要介绍了java读写excel文件实现POI解析Excel的方法,实例分析了java读写excel的技巧,非常具有实用价值,需要的朋友可以参考下
    2018-10-10
  • 图解Eclipse j2ee开发环境的搭建过程

    图解Eclipse j2ee开发环境的搭建过程

    这篇文章以图文结合的方式介绍了Eclipse j2ee开发环境的搭建过程,内容很详细,每一个步骤都有对应的操作截图,需要的朋友可以参考下
    2015-08-08
  • Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    这篇文章主要介绍了Windows系统下安装、启动、注册服务、停止 Tomcat操作的所有方法,本文通过图文并茂的方式给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2016-09-09
  • 使用注解进行Spring开发的全过程

    使用注解进行Spring开发的全过程

    使用注解(Annotation)是一种在代码级别进行说明和标记的技术,它从JDK 5.0开始引入,并在现代Java开发中得到了广泛应用,本文将详细介绍Spring框架中常用的注解及示例,帮助开发者快速掌握Spring注解开发的要点和技巧,需要的朋友可以参考下
    2023-11-11
  • Java中的增强for使用及说明

    Java中的增强for使用及说明

    增强for循环是一种简化遍历数组和集合元素的语法结构,适用于只需要访问元素而不需要索引或迭代器的情况,它提供了一种简洁而直观的方式来遍历数组或集合中的元素,但不能用于修改元素
    2025-11-11

最新评论