zoukankan      html  css  js  c++  java
  • 与服务端通信的时候遇到的一个小坑

    用java做了大半年的后台,第一次和服务端通信,也算是初次接触到服务端的东西吧,接触到的第一个坑就是将对服务器的请求写入到了后台的一个事物中

    结果是服务端和我的后台同时去修改数据库中同一个表中的数据,导致死锁!后台请求的时候老是请求不到,得不到返回结果,找了好久。。。

    觉得是个不错的教训,值得记录一下,问题代码如下:

    if(mvInfo.getMvStatus() == 4){//强制下架
    Map<String, Object> map = new HashMap<>();
    map.put("mvId", mvInfo.getMvId());
    map.put("userId", mvInfo.getUserId());
    String isLike = template.selectOne("mvInfo.queryMvLike", map);//用户是否喜欢了自己的该mv
    template.delete("mvInfo.deleteRankInfo", mvInfo);//删掉排行榜中该mv的信息
    mvInfo.setIsLike(isLike);
    template.update("mvInfo.updateUserMvInfo2", mvInfo);//维护用户mv信息
    sysMsg.setContent("经用户举报,您上传的MV《" + mvInfo.getMvName() + "》" + MsgContent.MV_XIAJIA);//下架通知内容
    sysMsg.setHeadline(MsgContent.MV_XIAJIA_TITLE);

    template.insert("reportInfo.handleMessage", sysMsg);//系统消息中插入此条下架信息
    sysMsg.sethUrlOrId(mvInfo.getMvId());
    businessReq.post(pushUrl, JsonUtil.objectToJson(sysMsg));//发送通知(该请求导致死锁
    return sysMsg;
    }

     

  • 相关阅读:
    JSP中自动刷新
    JSP点击计数器
    JSP页面重定向
    JSP处理日期
    Mybatis Generator生成数据库自带的中文注释
    GMT与Etc/GMT地区信息的时区转换
    《Redis入门指南》第2版 读书笔记
    ConcurrentHashMap
    应用服务器性能优化 之 消息队列(MQ:Message Queue)
    TabLayout让Fragment在ViewPager中的滑动切换更优雅
  • 原文地址:https://www.cnblogs.com/canmeng-cn/p/5945589.html
Copyright © 2011-2022 走看看