• 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中排除异常,如果遇到异常,将会重复插入好几遍

  • 相关阅读:
    phonegap ios插件开发及无限后台运行解决
    iOS JSON解析
    ios上取得设备唯一标志的解决方案
    为iOS7重新设计你的App
    iOS多线程GCD 研究
    自定义用户环境
    启用SELinux保护
    shell编写一个批量添加用户脚本
    shell编写一个判断脚本
    shell使用特殊变量
  • 原文地址:https://www.cnblogs.com/LiuFqiang/p/15176950.html
Copyright © 2020-2023  润新知