当前位置: 首页 > news >正文

百度人工智能做seo网站的公司哪家好

百度人工智能,做seo网站的公司哪家好,深圳物联网开发,wordpress post_idSpring Retry——方法重试、方法重新调用 简介:使用1. 配置2.使用 总结注意 简介: Spring Retry 是一个 Spring Boot 官方提供的支持重试机制的库。它提供了一种简单而灵活的方式来处理方法调用可能失败的情况,通过自动重试失败的操作&#…

Spring Retry——方法重试、方法重新调用

    • 简介:
    • 使用
      • 1. 配置
      • 2.使用
    • 总结
    • 注意

简介:

Spring Retry 是一个 Spring Boot 官方提供的支持重试机制的库。它提供了一种简单而灵活的方式来处理方法调用可能失败的情况,通过自动重试失败的操作,提供了一种可靠的方式来处理潜在的异常或错误。
除此之外:Spring Retry 是基于 Spring AOP(Aspect-Oriented Programming)实现的

Spring Retry 使用了 Spring AOP的切面(Aspect)来定义重试的逻辑。切面可以在方法调用之前、之后或抛出异常时执行特定的代码。通过在切面中定义重试的逻辑,Spring Retry 可以自动捕获异常并重新尝试方法调用,而不需要在每个方法上编写重试逻辑。

使用

1. 配置

为了启用 Spring Retry 的支持,首先要在pom.xml 文件中添加以下依赖项

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

因为 Spring Retry 是基于AOP实现的所以我们还要引入aop的相关依赖

  		 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

2.使用

1、在pom.xml文件中配置完之后,我们还要再启动类上添加@EnableRetry注解。

@SpringBootApplication
@EnableRetry
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

2、@Retryable
在需要重试的方法上加上@Retryable注解,当指定的方法抛出异常之后@Retryable抓取到异常并重新调用该方法

    @Retryablepublic void retry (String s){ //123System.out.println(s);System.out.println("###########");throw new RuntimeException();}

控制台输出:

123
###########
123
###########
123
###########

由于没有指定任何异常,因此将尝试重试所有异常。此外,一旦达到最大尝试次数,但仍有异常,就会抛出 ExhaustedRetryException。

  • interceptor:可以通过该参数,指定方法拦截器的bean名称
  • value:抛出指定异常才会重试
  • include:和value一样,默认为空,当exclude也为空时,默认所以异常
  • exclude:指定不处理的异常
  • maxAttempts:最大重试次数,默认3次
  • backoff:重试等待策略,默认使用@Backoff,@Backoff的value默认为1000L,我们设置为2000L;multiplier(指定延迟倍数)默认为0,表示固定暂停1秒后进行重试,如果把multiplier设置为1.5,则第一次重试为2秒,第二次为3秒,第三次为4.5秒。

3、@Recover
当 @Retryable指定的方法的重试次数用尽之后,程序就会走到 @Recover注解的方法中

   @Retryablepublic void retry (String s){System.out.println(s);System.out.println("###########");throw new RuntimeException();}@Recoverpublic void recover(){System.out.println("======>recover");}

控制台输出:

123
###########
123
###########
123
###########
======>recover

4、RetryTemplate
除此之外 Spring Retry不止可以使用注解的形式还配备了RetryTemplate接口方便以接口的形式使用

@Testpublic void test(){RetryTemplate retryTemplate = RetryTemplate.builder().maxAttempts(3).build();retryTemplate.execute((RetryCallback<Void, RuntimeException>) context -> {// 需要重试的方法调用needRetry();return null;}, (RecoveryCallback<Void>) context -> {// 重试次数达到上限后执行降级操作fallback();return null;});}public void needRetry(){System.out.println("0123456");System.out.println("=======");throw new RuntimeException();}public void fallback(){System.out.println("*******");System.out.println("********");throw new RuntimeException();}

控制台输出:

0123456
=======
0123456
=======
0123456
=======
*******
********

总结

Spring Retry 是一个 Spring Boot 官方提供的支持重试机制的库。它提供了一种简单而灵活的方式来处理方法调用可能失败的情况,通过自动重试失败的操作,提供了一种可靠的方式来处理潜在的异常或错误。

Spring Retry 的主要特点包括:

  • 简单易用:通过在方法上添加 @Retryable 注解,可以轻松启用重试机制。同时,还可以使用 @Backoff 注解来配置指数退避策略。
  • 自定义重试逻辑:通过实现 RetryTemplate 接口,可以自定义重试的逻辑,包括重试次数、休眠时间、异常类型等。
  • 支持多种触发条件:Spring Retry 支持多种触发重试的条件,包括抛出异常、返回特定值等。 集成性好:Spring Retry 与 Spring Boot 集成良好,可以方便地与其他 Spring 功能(如监控、日志等)集成。

Spring Retry 相比递归在处理重试逻辑方面有以下优点:

  • 简单易用:Spring Retry 提供了一种声明式的方式来处理重试逻辑,只需要在方法上添加相应的注解即可。相比之下,递归需要手动编写循环和条件判断,代码相对复杂且容易出错。
  • 可配置性强:Spring Retry 提供了丰富的配置选项,例如重试次数、休眠时间、异常类型等,可以根据实际需求进行灵活配置。而递归的重试机制通常需要手动编写逻辑,难以实现灵活的配置。
  • 资源利用率高:Spring Retry 在重试之间会根据配置进行休眠,避免了无休止的递归调用造成的栈溢出问题。同时,Spring Retry 使用了循环重试机制,每次重试都会重新计算下一次重试的时间,避免了资源的浪费。
  • 扩展性强:Spring Retry 提供了事件通知和自定义策略等扩展点,可以根据实际需求进行定制和扩展。而递归的方式通常难以实现这些高级功能。

注意

在使用过程中,发现当异常被try捕捉到之后将不会触发@Retryable 重试

http://www.yayakq.cn/news/421542/

相关文章:

  • 做网站的研究生专业建立主题网站的顺序是
  • 体育网站界面该怎样做百度舆情
  • 专业网站的公司小程序开发制作平台源码
  • 山西建站管理系统开发济南企业宣传片制作公司
  • 平台型网站建设预算表wordpress 后台页面不正常
  • 南山区住房和建设局网站做网页大概需要多少钱
  • 部门网站建设工作总结自动友链网
  • 网站内容如何优化当当网站建设与易趣网站对比
  • 做哪类网站赚钱城乡建设局官网
  • 昆明做网站推wordpress月份归档要收录吗
  • 公司网站制作费用申请公司网站建设找谁做
  • 产品导航网站源码北京网站制作建设
  • 上海建网站美橙互联网站模板
  • 班级网站建设方案书商标设计图案免费
  • 淮南电商网站建设外国游戏概念设计网站
  • 福州网站提升排名安徽建站网站
  • 网站统计开放平台中国人做外贸网站都卖什么手续
  • 深圳做网站的网wordpress知更鸟菜单修改
  • 做网站主要栏目内怎么成立个人网站
  • 中山高端网站建设价格淘宝建设网站的理由
  • 常州网站制作系统网站的ftp帐号
  • 有哪些外贸公司网站做的比较好新乡网站建设制作
  • 网站SEO优化实训dede手机网站模板修改
  • 做企业网站联系wordpress建站案例视频
  • 网上做问卷报酬不错的网站是个人网站制作手绘
  • 在线制作图片的网站网店如何推广自己的产品
  • 购物网站的图片轮播怎么做简单的网页设计作品下载
  • 凤岗仿做网站杭州最专业的seo公司
  • 常见的电子商务网站网址北京附近做网站的公司
  • 东南亚网站建设市场wordpress html 代码