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

什么网站发布任务有人做广告创意图片

什么网站发布任务有人做,广告创意图片,网站建设职能,怎么做自己的网站主页文章目录 问题现象栈溢出(不断的重连)读取超时未知响应尝试读取损坏的链接读取到的数据和自己要读的无关,导致空指针、类型转换错误,数据读取错乱 问题写法问题分析修复注意点 问题现象 栈溢出(不断的重连&#xff09…

文章目录

    • 问题现象
      • 栈溢出(不断的重连)
      • 读取超时
      • 未知响应
      • 尝试读取损坏的链接
      • 读取到的数据和自己要读的无关,导致空指针、类型转换错误,数据读取错乱
    • 问题写法
    • 问题分析
    • 修复
    • 注意点

问题现象

栈溢出(不断的重连)

		at redis.clients.jedis.Connection.sendCommand(Connection.java:163)at redis.clients.jedis.Connection.sendCommand(Connection.java:154)at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:815)at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:145)at redis.clients.jedis.Connection.sendCommand(Connection.java:163)at redis.clients.jedis.Connection.sendCommand(Connection.java:154)at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:815)at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:145)

在这里插入图片描述

读取超时

在这里插入图片描述

未知响应

在这里插入图片描述

尝试读取损坏的链接

在这里插入图片描述

读取到的数据和自己要读的无关,导致空指针、类型转换错误,数据读取错乱

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

问题写法

对Redis操作封装了一个Redis类
在这里插入图片描述
同事对pipeline加了这个方法
在这里插入图片描述
使用的时候

   public Map<String, AnswerModel> batchGetAnswersPipeline(List<String> answerIdList) {Map<String, AnswerModel> resultMap = new HashMap<>();try (Pipeline pipelined = redis.pipelined()) {List<Response<Map<String, String>>> responses = new ArrayList<>();for (String answerId : answerIdList) {String key = String.format(MOMENT_ANSWER_INFO, answerId);responses.add(pipelined.hgetAll(key));}pipelined.sync();for (Response<Map<String, String>> response : responses) {Map<String, String> map = response.get();AnswerModel answers = BeanUtil.mapToBean(map, AnswerModel.class);if (answers != null){resultMap.put(answers.getAnswerId(), answers);}}} catch (Exception e) {log.error("执行batchGetAnswersPipeline发生异常, redis pipeline error", e);throw new CatVillageException();}return resultMap;}

问题分析

在redis这个工具类中调pipelined时获取一个Pinelined对象,而获取这个方法里用了try with ,with了一个jedis链接,当try结束时链接会被归还jedispool连接池。而返回的这个pipeline仍然在用这个链接,当其他线程去拿链接的时候可能拿到的正好是这个链接,导致多个线程共用一个链接,一个线程在执行pipeline多条命令,另一个线程也在用这个链接。而jedis底层执行命令的时候是使用的OutputStream流式去执行命令,使用二进制流读取结果。当出现这种线程不安全问题的时候,读取写入就会有问题。

修复

删除Redis工具类中的pipelined方法,使用getJedis方法获取链接对象,再获取管道Pineline对象,自行close管道,最后执行完释放管道,链接。

public Map<String, QuestionModel> batchGetQuestionPipeline(List<String> questionIdList) {if (CollectionUtils.isEmpty(questionIdList)){return new HashMap<>();}Map<String, QuestionModel> resultMap = new HashMap<>();try (Jedis jedis = redis.getJedis()) {Pipeline pipelined = jedis.pipelined();List<Response<Map<String, String>>> responses = new ArrayList<>();for (String questionId : questionIdList) {String key = String.format(MOMENT_QUESTION_INFO, questionId);responses.add(pipelined.hgetAll(key));}pipelined.sync();for (Response<Map<String, String>> response : responses) {Map<String, String> map = response.get();QuestionModel question = convertFromMap(map);if (question != null) {resultMap.put(question.getPostId(), question);}}pipelined.close();} catch (Exception e) {log.error("执行batchGetQuestionPipeline发生异常, redis pipeline error", e);throw new CatVillageException();}return resultMap;}

注意点

若jedis在3.7版本以下的版本也会有管道二进制读取异常问题,请升级到3.7.0+版本


文章转载自:

http://Frd2YFQm.nLgLm.cn
http://RGtgLDaX.nLgLm.cn
http://uHM37q1R.nLgLm.cn
http://3Fu4g0nC.nLgLm.cn
http://34ebi3zk.nLgLm.cn
http://IZSYmM84.nLgLm.cn
http://ogUIfcX9.nLgLm.cn
http://vFMVvt2r.nLgLm.cn
http://4Gug1L3p.nLgLm.cn
http://KgFGUMY4.nLgLm.cn
http://w7JcedNk.nLgLm.cn
http://OtNu2RYs.nLgLm.cn
http://lypit3ur.nLgLm.cn
http://cKruw6af.nLgLm.cn
http://VS0yvlSU.nLgLm.cn
http://hquyRaOp.nLgLm.cn
http://2sckFdb1.nLgLm.cn
http://m7H3Px54.nLgLm.cn
http://YIenIPqD.nLgLm.cn
http://BBpM7NDF.nLgLm.cn
http://L01VifzX.nLgLm.cn
http://BFjkV86K.nLgLm.cn
http://oGtyGywf.nLgLm.cn
http://Rb37QofM.nLgLm.cn
http://DRqtQb8M.nLgLm.cn
http://JETQ2CH9.nLgLm.cn
http://mbzRCff0.nLgLm.cn
http://E49k6YlA.nLgLm.cn
http://NcalNVUo.nLgLm.cn
http://YDVmnPAO.nLgLm.cn
http://www.dtcms.com/wzjs/707540.html

相关文章:

  • wordpress网站在线安装可以免费制作网页的网站
  • 网上销售网站建设策划为什么进行网站备案
  • 临沂网站制作费用网站首页代码
  • 货源网站开发动漫设计网站
  • 外文网站开发会员管理系统企业版登录
  • 凡客网站设计做网站的公司给出个证明
  • 优秀的设计网站有哪些内容WordPress允许用户修改评论
  • 宜昌网站建设设计100万一300万企业所得税
  • 网站设计要学什么购物网站建设项目可研报告
  • 巩义市住房和城乡规划建设局网站建站系统平台
  • php网站建设方案网页翻译工具
  • 乡镇网站建设自查报告兴化网站网站建设
  • 企业网站手机端和pc端一个后台吗wordpress博客亚马逊广告
  • 住房和城乡建设部网站注册进度重庆seo教程博客
  • 高端网站制作公司凡科做的网站如何绑定域名
  • 蛋糕方案网站建设wordpress上传视频插件
  • 南昌购物网站开发中国建设通
  • c asp做网站域名购买成功后如何使用
  • ftp如何备份网站wordpress3.9.1中文
  • 怎么做电玩网站无需下载直接进入的网站的代码
  • 秦皇岛电子网站建设wordpress支持pdf
  • 广州优秀网站建设wordpress改全屏
  • 杭州滨江的网站建设公司织梦wordpress
  • wordpress邮件服务济南seo优化
  • 东光县建设局网站四川建设厅电子证书官方网站
  • 公司网站页面设计思路如何设计微商城网站建设
  • 本地用织梦做网站网站有哪些风格
  • 青岛市住房和城乡建设局官方网站广州开发区第二小学
  • 有口皆碑的域名备案加急优化绿松石什么意思
  • 诏安县城乡建设局网站4366网页游戏