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

企业网站seo点击软件做网站大家都找谁

企业网站seo点击软件,做网站大家都找谁,wordpress毕业设计,做水果网站特点分析主要用于在模块调用中#xff0c;出现失败、异常情况下#xff0c;仍需要进行重复调用。并且在最终调用失败时#xff0c;可以采用降级措施#xff0c;返回一般结果。 1、重试机制 我们采用spring 提供的retry 插件#xff0c;其原理采用aop机制#xff0c;所以需要额外…主要用于在模块调用中出现失败、异常情况下仍需要进行重复调用。并且在最终调用失败时可以采用降级措施返回一般结果。 1、重试机制 我们采用spring 提供的retry 插件其原理采用aop机制所以需要额外引入starter-aop包 1、依赖引入 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId /dependency dependencygroupIdorg.springframework.retry/groupIdartifactIdspring-retry/artifactId /dependency 2、在主启动类或者需要重试的方法所在的类上添加注解EnableRetry 3、在需要重试的方法上增加注解 Retryable表示该方法需要重试。可以定义在接口的抽象方法上也可以定义在实际的具体方法上。 public interface RetryService {/*** 指定异常CustomRetryException重试重试最大次数为4默认是3,重试补偿机制间隔200毫秒* 还可以配置exclude,指定异常不重试默认为空* return result* throws CustomRetryException 指定异常*/Retryable(value {CustomRetryException.class},maxAttempts 4,backoff Backoff(200))String retry() throws CustomRetryException; } Retryable注解参数说明 maxAttempts :最大重试次数默认为3如果要设置的重试次数为3可以不写 value抛出指定异常才会重试支持多异常 include和value一样默认为空当exclude也为空时默认所以异常 exclude指定不处理的异常 backoff重试等待时间策略默认使用Backoff的value默认为1000L我们设置为200L。 Backoff注解中的参数说明 value隔多少毫秒后重试默认为1000L delay和value一样但是默认为0 multiplier指定延迟倍数默认为0表示固定暂停1秒后进行重试如果把multiplier设置为1.5则第一次重试为2秒第二次为3秒第三次为4.5秒。 ④可以同时在同一个类中使用Recover来处理N次处理后都没有成功后需要处理的事情 可以在指定方法上标记Recover来开启重试失败后调用的方法(注意,需跟重处理方法在同一个类中) 2、请求降级 使用Recover实现降级措施 当重试到达指定次数时被注解的方法将被回调可以在该方法中进行日志处理。需要注意的是发生的异常和入参类型一致时才会回调。 Retryable和Recover修饰的方法要在同一个类中,且被Retryable 标记的方法不能有返回值这样Recover方法才会生效。 /*** value抛出指定异常才会重试* include和value一样默认为空当exclude也为空时默认所有异常* exclude指定不处理的异常* maxAttempts最大重试次数默认3次* backoff重试等待策略* 默认使用BackoffBackoff的value默认为1000L我们设置为2000 以毫秒为单位的延迟默认 1000* multiplier指定延迟倍数默认为0表示固定暂停1秒后进行重试如果把multiplier设置为1.5则第一次重试为2秒第二次为3秒第三次为4.5秒。* param code* return* throws Exception*/OverrideRetryable(value Exception.class,maxAttempts 3,backoff Backoff(delay 2000,multiplier 1.5))public int testRetry(int code) throws Exception{System.out.println(test被调用,时间 LocalTime.now());if (code0){throw new Exception(情况不对头);}System.out.println(test被调用,情况对头了);return 200;} /*** Spring-Retry还提供了Recover注解用于Retryable重试失败后处理方法。* 如果不需要回调方法可以直接不写回调方法那么实现的效果是重试次数完了后如果还是没成功没符合业务判断就抛出异常。* 可以看到传参里面写的是 Exception e这个是作为回调的接头暗号重试次数用完了还是失败我们抛出这个Exception e通知触发这个回调方法。* 注意事项* 方法的返回值必须与Retryable方法一致* 方法的第一个参数必须是Throwable类型的建议是与Retryable配置的异常一致其他的参数需要哪个参数写进去就可以了Recover方法中有的* 该回调方法与重试方法写在同一个实现类里面** 由于是基于AOP实现所以不支持类里自调用方法* 如果重试失败需要给Recover注解的方法做后续处理那这个重试的方法不能有返回值只能是void* 方法内不能使用try catch只能往外抛异常* Recover注解来开启重试失败后调用的方法(注意,需跟重处理方法在同一个类中)此注解注释的方法参数一定要是Retryable抛出的异常否则无法识别可以在该方法中进行日志处理。* param e* param code* return*/Recoverpublic int recover(Exception e, int code){System.out.println(回调方法执行);//记日志到数据库 或者调用其余的方法System.out.println(异常信息:e.getMessage());return 400;} 3、 RetryTemplate 对每个方法上进行注解定义以及对应降低方法定义过于繁琐。 spring 提供 retryTemplate 的bean对象定义一个可重试、降级的代理对象。 RetryTemplate提供了RetryOperations的一种具体实现。它被认为是从中创建bean的良好做法。 1、定义retryTemplate对象 BeanConditionalOnMissingBeanpublic RetryTemplate retryTemplate(){final SimpleRetryPolicy simpleRetryPolicy new SimpleRetryPolicy();simpleRetryPolicy.setMaxAttempts(4); ​final FixedBackOffPolicy fixedBackOffPolicy new FixedBackOffPolicy();fixedBackOffPolicy.setBackOffPeriod(1000L); ​return RetryTemplate.builder().customPolicy(simpleRetryPolicy).customBackoff(fixedBackOffPolicy).retryOn(CustomRetryException.class).build();} 2、使用retryTemplate Autowiredpivate RetryTemplate retryTemplate; ​Testvoid retryWithoutAnnotation(){try {String message retryTemplate.execute(x - retryService.retryWithoutAnnotation());log.info(message message);} catch (CustomRetryException e) {log.error(Error while executing test {},e.getMessage());}} 3、RecoveryCallback 降级 execute时可以选择输入RecoveryCallback回调确定重试结束后仍然出现异常的recovery行为。自定义方法如下 Slf4j public class CustomRecoveryCallback implements RecoveryCallbackString { ​Overridepublic String recover(RetryContext retryContext) throws Exception {log.info(Default Retry service test,total retry {},retryContext.getRetryCount());return Error Class :: retryContext.getLastThrowable().getClass().getName();} }4、RetryListenerSupport生命周期控制 如果我们想在重试整个生命周期中按照不同的阶段设置一些事件监听处理机制那怎么办呢设置自定义的RetryListenerSupport能帮助到我们。我们继承RetryListenerSupport并重新Override close 、onError、open方法这三个方法分别表示 所有重试结束时 close每一次重试发生异常时 onError重试正式开始前 open Slf4j public class DefaultListenerSupport extends RetryListenerSupport { ​Overridepublic T, E extends Throwable void close(RetryContext context, RetryCallbackT, E callback, Throwable throwable) {log.info(DefaultListenerSupport close);super.close(context, callback, throwable);} ​Overridepublic T, E extends Throwable void onError(RetryContext context, RetryCallbackT, E callback, Throwable throwable) {log.info(DefaultListenerSupport onError);super.onError(context, callback, throwable);} ​Overridepublic T, E extends Throwable boolean open(RetryContext context, RetryCallbackT, E callback) {log.info(DefaultListenerSupport open);return super.open(context, callback);} }并且在构造RetryTemaplate时候设置withListener字段。 Bean ConditionalOnMissingBean public RetryListenerSupport retryListenerSupport(){return new DefaultListenerSupport(); } ​ Bean ConditionalOnMissingBean public RetryTemplate retryTemplate(RetryListenerSupport retryListenerSupport){ ​...return RetryTemplate.builder().customPolicy(simpleRetryPolicy).customBackoff(fixedBackOffPolicy).withListener(retryListenerSupport).retryOn(CustomRetryException.class).build(); }
http://www.tj-hxxt.cn/news/229184.html

相关文章:

  • 网站建设技术教程腾讯企业邮箱二维码登录
  • 我的世界做圆网站东营网站建设服务电话
  • 网站后缀名自己做网站百度会收录
  • 如何做网站关键词排名朝阳区十大互联网
  • 网站服务器建设软件深圳全网整合营销
  • 北京网站备案域名外贸营销型网站设计
  • 湖南金辉建设集团有限公司网站湖南中高风险地区
  • 济宁网站建设公司有哪些html用什么编译器编写
  • 从零开始网页制作教程微博seo排名优化
  • 深圳网站建设套餐搜索引擎环境优化
  • 专业网站建设价格最优竞价网站托管
  • 丹棱县 网站建设网页制作模板主题
  • 网站索引下降如何解决免费整套ppt模板下载网站
  • 崇州市建设局网站怎么建立微信大转盘的网站服务
  • 常州网站建设段新浩网站建设板块免费下载
  • 网站建设中可能升级毕业设计代做网站有哪些
  • 唐山工程建设信息网站网站建设费属于广宣费吗
  • 如何给企业做网站seo顾问阿亮
  • 网站设计与网页制作岗位招聘信息小学网站建设方案书
  • 网站建设运维自查问题清单wordpress实现用户中心
  • wordpress 邮件配置文件帮助网站网站做优化
  • 深圳网站制作公司深圳app开发洪梅镇仿做网站
  • 淄博网站优化推广怎样制作网页木马
  • 网站建设需要收集资料吗设计网页作业
  • nas可以做网站设计方案汇报
  • 展览搭建设计网站广东阳江房产网
  • 网站建设最关键的两个素材做php网站用什么软件开发
  • 做公司网站比较好的wordpress知更鸟打赏
  • 成都网站建设空间ui设计在哪个网站可以接做
  • 粤icp备网站建设 中企动力广州网站形式