zoukankan      html  css  js  c++  java
  • Spring中的重试机制Retry的注意事项

    一 简单使用

    1. 导入依赖

    <!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry -->
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
        <version>1.2.5.RELEASE</version>
    </dependency>

    目前最稳定最新的版本为1.2.5, 如果这个地方父工程为spring-boot-starter-parent,可不必导入这个依赖,

    由于spring-retry是基于AOP实现的,所以还需要导入

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

    2. 启动类配置

    添加注解@EnableRetry

     或:

     3. 在需要重试的方法上添加@@Retryable

    4. @Recover 

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

    需要注意的地方:

    1. 需要重试的方法与@Recover的返回类型必须保持一致,否则无法重试,比如需要重试的方法返回参数为Map类型,回调的方法为void,重试机制将失效,

    2. 注解@Recover方法必须与被重试的方法在一个类中,言外之意,一个service中如果有多个重试方法,但是@Recover方法只有一个有效

    3. 避免在重试方法中进行数据库add操作,可以在@Backoff中排除异常,如果遇到异常,将会重复插入好几遍

  • 相关阅读:
    重构手法之简化函数调用【5】
    netstat命令
    Python使用wxpy模块实现微信两两群组消息同步
    format函数格式化显示的方法
    scrapy介绍及使用
    Linux常用命令复习
    Django实现博客项目
    Django中CKEditor富文本编译器的使用
    Django-admin站点管理的详细使用
    电脑修改密码后,git push 报错unable to access
  • 原文地址:https://www.cnblogs.com/LiuFqiang/p/15176950.html
Copyright © 2011-2022 走看看