Springboot @Retryable重试机制实现

本文介绍了在Springboot中使用@Retryable注解实现重试机制的场景和步骤,包括设置最大重试次数maxAttempts、指定重试异常类型value以及调整重试等待策略。当调用第三方服务或方法遇到网络异常时,重试机制能有效应对突发问题。
场景

在开发的过程中,有的时候我们需要调用第三方的服务或方法 这时候可能会出现网络异常 等一些意外的情况这时候重试机制就会有用了

实现的步骤
  1. 加入引用
<dependency>
	<groupId>org.springframework.retry</groupId>
    <artifactId>spring-retry</artifactId>
</dependency>
  1. .在启动的主程序上加注解
@EnableRetry 
  1. 在需要重试的方法上加入重试的注解
    @Override
    @Retryable(value = {Exception.class}, maxAttempts = 20, backoff = @Backoff(delay = 2000, multiplier = 1.5))
    public void testRetry() throws Exception {
        System.out.println("测试重试方法: 执行时="+System.currentTimeMillis());
        throw new Exception();
    }
参数详情
value

表示遇到该异常进行重试操作(也可以是自定义的异常)

maxAttempts

重试最大的次数

重试等待策略

@Backoffvalue默认为1000L,我们设置为2000L;multiplier(指定延迟倍数)默认为0,表示固定暂停1秒后进行重试,如果把multiplier设置为1.5,则第一次重试为2秒,第二次为3秒,第三次为4.5秒。
4.重试到达最大的次数(maxAttempts)之后的回调方法 @Recover

   @Recover
    private void testRetryRecover(){
        System.out.println("方法重试失败次数到上限了");
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值