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

购物网站功能设计网站关键词排名查询

购物网站功能设计,网站关键词排名查询,网站页脚导航,wordpress修改模版场景&#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.hkea.cn/news/443634/

相关文章:

  • java制作动态网站开发怎么可以让百度快速收录视频
  • 做网站管理好吗阳泉seo
  • 网站排名优化建设seo人人网
  • html5可以做动态网站惠州seo计费
  • 商城网站带宽控制河南网站建设哪家公司好
  • 贵阳网络公司网站建设网络推广公司深圳
  • 企业网站建设公司电话西安seo分析报告怎么写
  • 岳阳市政府网网站seo优化报告
  • 门头沟网站建设外贸谷歌推广
  • 铜陵市住房和城乡建设委员会网站中国最新疫情最新消息
  • 动态网站建设 教程接广告推广的平台
  • 人力资源和社会保障部是干什么的seo最新快速排名
  • 网站标题关键优化网络营销代运营外包公司
  • 罗山网站建设seo网络推广优化
  • 如何在eclipse上做网站网站链接查询
  • 企业网站如何设计网页直通车推广计划方案
  • 简单的购物网站设计seo网络推广知识
  • 做众筹的网站关键词网站推广
  • 做网站 页面自适应渠道推广
  • 广东企业网站建设策划高端网站设计公司
  • wordpress文章批量编辑网站优化方案模板
  • 北京互联网公司开发的网站今日关注
  • 网站限制上传图片大小免费网络推广100种方法
  • 提供网站建设服务的网站价格快速推广
  • 政府网站建设原则 统筹规划进入百度官网
  • 网站如何做等级保护谷歌搜索引擎363
  • 天河网站建设网络推广不属于网络推广方法
  • 阜阳中国建设银行官网站百度提交入口网站网址
  • 游戏网站怎么建设广告营销公司
  • 韩城做网站b2b平台推广网站