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

网站建设新闻咨询网站开发找聚脑网

网站建设新闻咨询,网站开发找聚脑网,印度做杂质的网站,苏州建设监理有限公司网站文章目录 背景分析现象排查定位数据比对解决方案反思背景 背景:今天下午初始化经营体数据到预发环境,需要将生产环境的经营体表的数据同步到预发环境,同步结束后。再调用批量禁用接口,目的是将原来一级经营体【中国移动】下的所有经营体禁用掉,然后导入Excel文件将新的省…

文章目录

  • 背景
  • 分析
  • 现象
  • 排查
  • 定位
  • 数据比对
  • 解决方案
  • 反思

背景

背景:今天下午初始化经营体数据到预发环境,需要将生产环境的经营体表的数据同步到预发环境,同步结束后。再调用批量禁用接口,目的是将原来一级经营体【中国移动】下的所有经营体禁用掉,然后导入Excel文件将新的省份公司经营体重新导入到系统中。

使用到的相关表: org_venture 、org_venture_business_configuration 、org_venture_business_type_index_rel、org_venture_employee_relation

分析

这个需求简单可以分三步

  • 第一步:将生产环境的上面四张表的数据各自复制一份,发给运维人员。在预发环境上,运维人员会先清空上面四张表的数据,然后再将研发人员提供的四张表的数据导入到数据库里
  • 第二步:调用批量禁用接口,目的是将原来一级经营体【中国移动】下的所有经营体都给禁用掉
  • 第三步:导入Excel文件将新的省份公司经营体重新导入到系统中

现象

在所有的配置都执行结束后,结果调用getVenturePathByEmpId这个接口报如下错误,getVenturePathByEmpId这个接口的作用是根据人员ID遍历树去查询当前人员对应的经营体的类目链

注意:这里面涉及到遍历树查询,这就为后来的报错埋下祸根

结果就是该接口在pre环境上执行时报堆栈异常错误
在这里插入图片描述

排查

思考:这里面只有三个操作步骤,既然这样,那为啥不针对每个步骤逐一去排查问题呢?

步骤1:既然我们的数据是从生产环境上copy下来的,那样的话我们就去生产环境上去查看是否存在数据问题
通过去比对生产环境上的数据,没发现啥问题

思考:那会不会是调用批量禁用接口的时候导致的呢?

步骤2:验证批量禁用接口
结果:没发现任何异常
思考:既然前两个步骤都没有问题,那么会不会是代码的问题?

步骤3:debug排查代码
开始是debug去排查代码,结果就是查了半个小时,代码端看不出来啥问题(接口是递归调用,所以debug排查的时候比较费力气)
。。。
若干时刻后,终于发现了一个惊人的问题,经营体的ID值怎么和他的父经营体相同,多年的开发经验告诉我这应该就是导致堆栈异常的原因。经过深入排查后,最终定位问题就是【id=parent_venture_id】这个问题导致的

定位

导致堆栈异常的问题是找到了,但是它两是怎么相等的,代码问题?还是操作问题?
如果是代码问题:我把全部debug走了一遍,没有发现任何地方设置二者值相同的逻辑
既然不是代码的问题,那应该就是操作的问题了

验证操作问题
首先在生产环境上执行sql: select id, venture_name, parent_venture_id,update_time from org_venture where id = parent_venture_id。没有发现有 【id=parent_venture_id】的数据
在这里插入图片描述
那么就去pre环境去排查数据源,结果发现了问题
通过sql: select id, venture_name, parent_venture_id,update_time from org_venture where id = parent_venture_id
发现有好几个经营体的ID和其parent_venture_id相同。

初步结论

  • 通过分析代码轻松得知,因为二者相同的缘故导致查询的时候陷入嵌套死循环,由于程序一直执行,自然就把内存资源全部都耗光了,最后报堆栈异常
  • 既然是这样的话,那么导致【id=parent_venture_id】数据相同的问题只有两种情况了,要么就是从生产环境上复制数据到pre环境有问题,要么就是Excel导入的新数据有

文章转载自:

http://9XoHLm1j.sfjqy.cn
http://jLFZhUOH.sfjqy.cn
http://DC5wP6Vw.sfjqy.cn
http://1DWgoc6o.sfjqy.cn
http://fYuhR60m.sfjqy.cn
http://pviu8r3l.sfjqy.cn
http://WErXwy74.sfjqy.cn
http://Lve02Amx.sfjqy.cn
http://HRCjU7n1.sfjqy.cn
http://PfhAqU8W.sfjqy.cn
http://3BODeawO.sfjqy.cn
http://12wxj08w.sfjqy.cn
http://BcVATNEz.sfjqy.cn
http://H6vdJyfC.sfjqy.cn
http://HIMADwmo.sfjqy.cn
http://xEUHNBuN.sfjqy.cn
http://Jt6Kh2AU.sfjqy.cn
http://7LBNAC4F.sfjqy.cn
http://ZoGO7TB4.sfjqy.cn
http://Ny4ROTXH.sfjqy.cn
http://6HwGJ0Ln.sfjqy.cn
http://hVgA03TG.sfjqy.cn
http://dPJOvViX.sfjqy.cn
http://H5AetfsD.sfjqy.cn
http://CUh7pfEM.sfjqy.cn
http://DY8mdjF7.sfjqy.cn
http://LcFzy6Vl.sfjqy.cn
http://s4HDHcMc.sfjqy.cn
http://MzYTHHFH.sfjqy.cn
http://x0XlP2as.sfjqy.cn
http://www.dtcms.com/wzjs/675405.html

相关文章:

  • 网站的ico怎么做没有服务器做网站
  • 景点网站设计与制作wordpress主题在那个目录
  • 绝对大气漂亮的响应式网站后台模板网站域名被重定向
  • 自己如何建一个网站电子商务seo招聘
  • 长春网站制作推广招生门户网站建设方案
  • 用自己的身份做网站备案萧山网络公司
  • 做一家网站费用用dw做网站图片的基本尺寸
  • 2018年靖边建设项目招投标网站云市场 wordpress
  • 做的好的响应式网站有哪些做网站找个人还是找公司
  • 深圳网络营销|深圳网站建设公司|专业网络营销运营推广策划公司wordpress评论者头像
  • 哪些网站设计的高大上石家庄网站开发
  • 高端网站制作开发seo营销型网站设计要点
  • 凡科网站建设怎么样网站订单系统模板下载
  • 网站建设智推网nginx wordpress 403
  • 国外网站做acm题目比较好wordpress中常用插件安装
  • 电信网站备案wordpress页面id判断
  • 网站广告怎么赚钱wordpress颜色代码
  • 自己做一个网站要多少钱自己做的网站页面错误
  • 营销型网站怎么做教务管理系统登录入口
  • 著名的网站建设平台采购平台网
  • 什么是网站交互宁波网站优化
  • 网站建设费用的财务核算合肥经开区建设局网站
  • 杭州建设局网站电子商务网站建设背景
  • golang做网站人力资源招聘公司
  • 网站建设免备案免费空间皮具制品 东莞网站建设
  • 经营类网站备案黄石市新闻
  • 国外网站托管个人教程网站
  • php网站建设含义网站域名做固定资产怎么处理
  • 自己创业做网站口碑营销案例2021
  • 上海制作网站的公司有哪些手机网站宽度是多少