接口请求失败?@Retryable(spring的重试机制)

您所在的位置:网站首页 第三方接口是什么意思 接口请求失败?@Retryable(spring的重试机制)

接口请求失败?@Retryable(spring的重试机制)

2024-07-15 18:23:59| 来源: 网络整理| 查看: 265

在开发项目中,我们经常会使用到多个第三方接口来获取数据,那么当调用接口失败,导致获取不到数据时该如何处理?这时候就需要用到@Retryable注解了(spring提供的重试机制)

使用步骤:

1.添加依赖

org.springframework.retry spring-retry 1.2.2.RELEASE //因为Spring Retry是使用AOP实现,所以必须要有spring-aspects依赖 org.springframework spring-aspects

2. 在启动类或者配置类或者需重试方法所在的类上添加注解@EnableRetry

启动类示例

@EnableRetry @SpringBootApplication public class Application { ... }

配置类示例

@EnableRetry @Configuration public class AppConfig { ... }

3. 在需要重试的方法上添加注解@Retryable,当方法发生指定异常时就会重试

@Service public class DemoService { @Retryable(value={Exception.class},maxAttempts=3,backoff=@Backoff(value=3000,multiplier=1.5)) public void call() throws Exception { throw new Exception("RPC调用异常"); } @Recover public void recover(RemoteAccessException e) { System.out.println(e.getMessage()); } }

参数说明:

@Retryable注解中的参数说明: maxAttempts:最大重试次数,默认为3,如果要设置的重试次数为3,可以不写; value:抛出指定异常才会重试 include:和value一样,默认为空 exclude:指定不处理的异常,默认空(当与include同时为空时,所有异常都重试) backoff:重试等待策略,默认使用@Backoff

@Backoff注解中的参数说明: value:重试间隔时间,默认为1000毫秒 delay:和value一样,但是默认为0 multiplier:(指定延迟倍数)默认为0,表示固定暂停1秒后进行重试,如果把multiplier设置为1.5,则第一次重试为2秒,第二次为3秒,第三次为4.5秒。

4. 在指定方法上标记@Recover来开启重试失败后需要执行的方法(需跟重试方法在同一个类中)

@Recover: 当重试到达指定次数时,被注解的方法将被回调,可以在该方法中进行日志处理。需要注意的是发生的异常和入参类型一致时才会回调。

ps. 避坑提醒

由于retry用到了aspect增强,所有会有aspect的坑,就是方法内部调用时,会使aspect增强失效,那么retry当然也会失效。 public class demo { public void A() { B(); } //这里B不会执行 @Retryable(Exception.class) public void B() { throw new RuntimeException("retry..."); } } 重试机制,不能在接口实现类里面写。所以要做重试,必须单独写个service。

参考文献

@Retryable @Retryable



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭