SpringRetry接口重试机制

简介: SpringRetry接口重试机制

添加依赖

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

启动类添加@EnableRetry

重试代码实现

@Slf4j
@Component
public class RetryComponent {
    @Retryable(
//            value = {
                IllegalArgumentException.class,
                ArrayIndexOutOfBoundsException.class
//            },     // 指定重试的异常,不是这个则不重试
            exclude = NullPointerException.class,   // 指定不去重试的异常,抛出的这个异常不会进行重试
            maxAttempts = 5,         // 重试的总次数
            backoff = @Backoff(
                    delay = 1000L,
                    multiplier = 2
            )   // 重试间隔为1秒,后续的重试间隔时间为1/2/4/8秒
    )
    public boolean sendSmsWithRetry() {
        log.info("当前时间 Time={}", LocalDateTime.now());
        return SMSUtilsRetry.sendSMS();
    }
    // 达到最大重试次数,或者抛出一个没有被设置(进行重试)的异常
    // 可以作为方法的最终兜底处理,如果不处理,也行随意
    @Recover
    public boolean recover() {
        GraceException.display(ResponseStatusEnum.SYSTEM_SMS_FALLBACK_ERROR);
        return false;
    }
}
目录
相关文章
|
3月前
|
消息中间件 Kafka Python
Producer的错误处理与重试机制
【8月更文第29天】在分布式系统中,消息传递是核心组件之一,它通常通过消息队列(如 Kafka、RabbitMQ 或其他)来实现。当生产者尝试将消息发送到消息队列时,可能会遇到各种类型的故障,例如网络中断、服务器不可用等。为了确保消息的可靠传递,需要实现有效的错误处理和重试机制。
93 2
|
4月前
|
监控 中间件 Java
中间件失败重试机制
【7月更文挑战第21天】
57 7
|
3月前
|
消息中间件 负载均衡 调度
异步任务处理系统问题之自动重试是如何在Level 3的系统中实现的问题如何解决
异步任务处理系统问题之自动重试是如何在Level 3的系统中实现的问题如何解决
|
4月前
|
JavaScript 中间件
中间件重试机制
【7月更文挑战第20天】
46 1
|
4月前
|
分布式计算 UED 流计算
Java编程问题之重试机制问题之在使用重试机制时的问题如何解决
Java编程问题之重试机制问题之在使用重试机制时的问题如何解决
|
4月前
|
设计模式 中间件 Java
线程池相关故障问题之什么是动态代理,它在重试机制中如何应用
线程池相关故障问题之什么是动态代理,它在重试机制中如何应用
OKHTTP解析之RetryAndFollowUpInterceptor重试机制
OKHTTP解析之RetryAndFollowUpInterceptor重试机制
|
6月前
|
存储 缓存 数据库
接口幂等有哪些实现方式
接口幂等有哪些实现方式
47 0
|
6月前
|
监控
异步处理机制如何处理消息处理失败的情况?
异步处理机制如何处理消息处理失败的情况?
168 0
|
安全 Java
Hystrix超时机制为服务接口调用超时提供安全保护
Hystrix超时机制为服务接口调用超时提供安全保护
113 1