Spring提供的重试模板Spring Retry的使用

2020-04-09  本文已影响0人  和平菌

使用场景:有些业务有调用失败的情况,可以 设置多次重试,当重试达到一定次数后取消重试。

使用步骤:
1、首先要添加依赖

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

            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.9.2</version>
            </dependency>

spring-retry依赖到了aspectjweaver,不添加会报错

2、在应用配置类上添加 @EnableRetry 以打开Spring Retry的自动配置;
···
@Configuration
@EnableRetry
public class Application {
@Bean
public Service service() {
return new Service();
}
}
···

3、在业务中使用

@Retryable(RemoteAccessException.class)
    public void service() {
        log.info("调用服务");
        throw new RemoteAccessException("调用失败");
    }
    @Recover
    public void recover(RemoteAccessException e) {
        // ... panic
        log.info("全部调用失败,不再重试-->" + e.getMessage());

    }

调用服务,当抛出定义的异常RemoteAccessException时,进行重试,默认重试3次(可配置),当重试3次后还失败则调用recover方法。

上一篇下一篇

猜你喜欢

热点阅读