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

中文网站什么意思wordpress电脑访问不了

中文网站什么意思,wordpress电脑访问不了,高州新闻 头条 今天,wordpress资源下载页面文章目录 1 问题背景2 前言3 多处重复的重试机制代码4 优化后的代码5 进一步优化 1 问题背景 在电商场景中#xff0c;会调用很多第三方的云服务#xff0c;比如发送邮件、发起支付、发送验证码等等。由于网络存在抖动#xff0c;有时候发起调用后会拿到500的状态码#xf… 文章目录 1 问题背景2 前言3 多处重复的重试机制代码4 优化后的代码5 进一步优化 1 问题背景 在电商场景中会调用很多第三方的云服务比如发送邮件、发起支付、发送验证码等等。由于网络存在抖动有时候发起调用后会拿到500的状态码io exception等报错因此需要重新调用简称重试机制。项目中很多地方用到重试机制导致很多重复的代码因此笔者考虑使用Java8函数式接口优化该重试机制抽成一个工具类方法。 2 前言 本文的代码中可能有些类型没有给出代码不需要纠结主要了解函数式接口怎么应用即可 3 多处重复的重试机制代码 项目中多次出现的代码如下 BasicResponseString response null;int retryTimes 0;do {try {String startTimeStr DATE_TIME_FORMATTER.format(LocalDateTime.now());response restTemplate.postForString(basicRequest); // 此行代码是可变的可能是get方式请求可能是post方式String endTimeStr DATE_TIME_FORMATTER.format(LocalDateTime.now());PayReq logObject PayReq.getLogObject(payReq);log.info(XXXPay payOrder, request:{}, response:{}, startTimeStr:{}, endTimeStr:{}, retryTimes:{}, JSON.toJSONString(logObject), JSON.toJSONString(response), startTimeStr, endTimeStr, retryTimes);} finally {if (response ! null !response.getCode().equals(HttpStatus.SC_OK)) {try {Thread.sleep(500L);} catch (InterruptedException e) {e.printStackTrace();}}retryTimes;}} while (!response.getCode().equals(HttpStatus.SC_OK) retryTimes 3);分析 如上所示在这行代码response restTemplate.postForString(basicRequest);是可变的有可能是get方式提交http请求有可能是post方式。因此要把此处抽象出来交给调用者写具体实现。调用者需要拿到http响应报文那么抽象出来的接口需要有返回值。那么此处可以使用Supplier函数式接口或者自己定义一个有返回值的函数式接口也可以。 在log.info打日志这行需要打出响应报文、开始时间、结束时间、重试次数等这些都可以抽到工具类里面但是日志的内容XXXPay payOrder这些是可变的应该交由调用者写具体实现。那么我们可以定义一个函数式接口出来有入参但无返回值入参是提供给调用者使用的。 4 优化后的代码 定义一个打日志的函数式接口 /*** 打日志的函数式接口* * param T*/ FunctionalInterface public interface LogFuncT {/*** 打日志* * param response 响应报文* param startTimeStr http调用开始时间* param endTimeStr http调用结束时间* param curTime 当前重试次数*/void log(T response, String startTimeStr, String endTimeStr, int curTime); }Http重试工具类如下主要关注有代码注释的那两处地方即可 Slf4j public class HttpRetryUtil {private final static DateTimeFormatter DATE_TIME_FORMATTER DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss:SSS);public static T T retryOnException(SupplierT supplier, LogFunc logFunc,int maxRetryTimes, long sleepMillis) {T result null;int retryTimes 0;do {try {String startTimeStr LocalDateTime.now().format(DATE_TIME_FORMATTER);// 交给调用者写具体实现并把值返回出去result supplier.get();String endTimeStr LocalDateTime.now().format(DATE_TIME_FORMATTER);// 交给调用者写具体实现入参供调用者使用logFunc.log(result, startTimeStr, endTimeStr, retryTimes);} catch (Exception e) {e.printStackTrace();} finally {if (result ! null !((BasicResponseString) result).getCode().equals(HttpStatus.SC_OK)) {try {Thread.sleep(sleepMillis);} catch (InterruptedException e) {e.printStackTrace();}}retryTimes;}} while (((result null) || !((BasicResponseString) result).getCode().equals(HttpStatus.SC_OK)) retryTimes maxRetryTimes);return result;} }测试用例如下所示优化前有21行/代码见第3小节的代码其实如果不写注释不换行只需用1行就可以将这个重试机制调用起来了见下面的代码简洁多了 Slf4j public class HttpRetryUtilTest extends AppTest {Resourceprivate HttpRestTemplate restTemplate;Testpublic void testRetry(){BasicRequest basicRequest new BasicRequest();basicRequest.setMethodUrl(https://www.google.com);BasicResponseString resp HttpRetryUtil.retryOnException(// 实现supplier函数式接口() - restTemplate.getForString(basicRequest), // 实现LogFunc函数式接口(response, startTimeStr, endTimeStr, curTime) - log.info(HttpRetryUtil retryOnException, request:{}, response:{}, startTimeStr:{}, endTimeStr:{}, times:{}, JSON.toJSONString(basicRequest), JSON.toJSONString(response), startTimeStr, endTimeStr, curTime), 3, 500L);log.info(repsonse:{}, JSON.toJSONString(resp));} }5 进一步优化 针对那些重试次数、休眠时间可以在工具类中再定义一些默认的重试次数、默认的休眠时间然后利用Java的多态特性方法重载定义多种工具方法即可。
http://www.zqtcl.cn/news/163970/

相关文章:

  • 杨家坪网站建设企业生产erp软件公司
  • 网站模块设计软件河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo
  • 陕西正天建设有限公司网站西安专业网页制作
  • 网站建设工作室介绍范文seo网站排名的软件
  • 上海网站建设-网建知识可编辑个人简历模板
  • 北京新鸿儒做的网站shopify做国内网站
  • 网站怎样做百度推广机关门户网站建设要求
  • 好看的网站后台模板沧州网站群
  • 深圳做网站排名公司哪家好哪些网站seo做的好
  • 国内网站建设推荐网站建设合同标准版
  • 哈尔滨网站制作费用企业成品网站模板
  • 网络广告网站怎么做北京海淀建设中路哪打疫苗
  • 房地产公司网站制作电影发布网站模板
  • 如何利用开源代码做网站网站本科
  • 公司是做小程序还是做网站宜宾住房与城乡建设部网站
  • 做网站哪个公司最社区问答网站开发
  • 网站引量方法网站建设推广页
  • 书店网站的建设网络营销方法有哪些
  • 深圳网站优化软件顺企网怎么样
  • 做网站的需要什么要求中国五百强企业排名表
  • 网络营销 企业网站外贸响应式网站建设
  • 网站网页制作公司o2o平台是什么意思啊
  • 惠州市网站建设个人网站怎么进入后台维护
  • 微信网站链接怎么做wordpress 绑定手机版
  • 网站建设的内容是什么在线阅读小说网站怎么建设
  • 福州网站开发哪家比较好建设网站需要掌握什么编程语言
  • 邹平做网站的公司莱芜人才网莱芜招聘
  • 旅行网站开发意义怎样优化网络速度
  • 手机微网站建设多少钱拟定网络设计方案
  • 厦门制作公司网站安卓原生app开发工具