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

营销型网站建设试卷广告宣传

营销型网站建设试卷,广告宣传,网站降权该怎么做,废旧材料手工制作大全场景&#xff1a; 某些场景下&#xff0c;如果接口出现异常需要进行重试&#xff0c;例如网络抖动、调用接口超时等并非接口代码导致的报错&#xff0c;此时可以进行接口重试机制 1、导入 spring retry 重试依赖 <!-- spring retry --><dependency><groupId>…

场景:
某些场景下,如果接口出现异常需要进行重试,例如网络抖动、调用接口超时等并非接口代码导致的报错,此时可以进行接口重试机制

1、导入 spring retry 重试依赖

        <!-- spring retry --><dependency><groupId>org.springframework.retry</groupId><artifactId>spring-retry</artifactId><version>1.3.4</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>

因为 spring retry 是基于 aop 实现的,所以还需要导入 aop 依赖

2、主启动类标注启动重试功能 @EnableRetry

3、测试重试方法 

    @Retryable(value = Exception.class,maxAttempts = 5,backoff = @Backoff(delay = 1000, multiplier = 2),recover = "recoverTestSpringRetryTwo")@Overridepublic void testSpringRetry(String name, String address) throws BizException {log.info("姓名:{},地址:{}", name, address);//模拟报错if (StrUtil.equals(name, "张三")) {throw new BizException("出现异常");}}

参数说明:
【1】@Retryable:标注该方法出现异常,进行重试
【2】value:对哪种异常进行重试
【3】maxAttempts:最大重试次数,默认3
【4】backoff:重试策略,delay = 1000, multiplier = 2 延迟1秒(1000毫秒)进行第一次重试,后续每次延迟时间会以 multiplier 的倍数进行重试,示例为:1(1000毫秒)秒、2(1000*2)秒、4(2000*2)秒、8(4000*2)秒...以此类推进行重试
【5】recover:最大重试次数耗尽触发此方法。有多个异常回调方法时需要用此属性指定用哪个
【6】当重试次数耗尽依然抛出异常,可以通过 @Recover 方法进行失败回调、拿到参数进行手工处理

4、异常重试回调方法

使用 @Recover 标注重试回调方法

    @Recoverpublic void recoverTestSpringRetryOne(Exception e, String name, String address) {log.info("recoverTestSpringRetryOne异常重试回调方法开始执行,参数为:姓名:{},地址:{}", name, address);log.info("此时可以把此参数记录到重试异常回调表中,以便后续通过定时任务调度补偿处理");log.error("异常消息:{}", e.getMessage());e.printStackTrace();}@Recoverpublic void recoverTestSpringRetryTwo(Exception e, String name, String address) {log.info("recoverTestSpringRetryTwo异常重试回调方法开始执行,参数为:姓名:{},地址:{}", name, address);log.info("此时可以把此参数记录到重试异常回调表中,以便后续通过定时任务调度补偿处理");log.error("异常消息:{}", e.getMessage());e.printStackTrace();}

注意:
【1】@Recover 方法的返回类型必须与 @Retryable 方法的返回类型一致
【2】@Recover 方法的第一个参数必须是 Throwable 类型
【3】回调方法与重试方法必须在同一个实现类中
【4】如果一个实现类中有多个异常回调方法,在 @Retryable 中可以使用 recover 属性指定回调的方法名

5、验证结果:

c.h.m.m.t.s.impl.TestDailyServiceImpl    :46 - 姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :46 - 姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :46 - 姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :46 - 姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :46 - 姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :63 - recoverTestSpringRetryTwo异常重试回调方法开始执行,参数为:姓名:张三,地址:上海
c.h.m.m.t.s.impl.TestDailyServiceImpl    :64 - 此时可以把此参数记录到重试异常回调表中,以便后续通过定时任务调度补偿处理
c.h.m.m.t.s.impl.TestDailyServiceImpl    :65 - 异常消息:出现异常
BizException(code=null, message=出现异常)at com.hkl.mpjoin.modules.testdaily.service.impl.TestDailyServiceImpl.testSpringRetry(TestDailyServiceImpl.java:49)

从结果可以看出,符合重试策略的预期,重试5次后依然异常失败,进入失败回调方法结束

http://www.hrbkazy.com/news/17438.html

相关文章:

  • go.php wordpressseo服务工程
  • seo与网站建设北京百度推广电话号码
  • 网站上面的图片是怎么做的海南百度推广电话
  • 推广普通话活动方案作品提示优化要删吗
  • 集团网站建设企业seo
  • 谁有做网站比较厉害的网站分析
  • 政府门户网站群建设方案关键词有哪些
  • 网站建设需求分析文档下载百度app下载
  • 网站建设douyanetwin7优化大师好不好
  • 聚名网合法吗seo的外链平台有哪些
  • 个人简历ppt模板免费优化网站排名
  • 公司介绍网站怎么做明天上海封控16个区
  • 永久免费仓库出入库管理软件广州seo站内优化
  • 给老外做代购网站视频剪辑培训班一般学费多少
  • 做电商那个平台最好做网站seo怎么赚钱
  • seo网站结构优化精准营销系统价值
  • 河北做网站公司那家好百度开户怎么开
  • bootstrap响应式网站开发实战搜索引擎免费登录入口
  • 做妇产科网站网站推广引流
  • 泉州最专业手机网站建设开发重庆seo顾问
  • 武汉高端网站设计在线bt磁力搜索
  • 临西网站建设公司行者seo
  • 济南集团网站建设公司好整站seo定制
  • 佛山设计网站公司吗搜索关键词怎么让排名靠前
  • 武汉网站制作 费用百度精准搜索
  • 网站建设链接网站制作的流程是什么
  • 自己做网站seo优化郑州高端网站建设
  • 体育网站怎样做香功百度搜索指数查询
  • 怎么查询网站是哪家公司做的营销宣传方案
  • 做家教网站怎么样自助建站系统开发