记录一次线上重大bug !

项目是rpg游戏类的,基于workerman;

有一个需求是这样的,需要改造一个功能的旧数据,变为一个新的玩法模式,我在每个人登录时做了数据调整; 

上线后,发现pk时,战斗数据有很大差异
找了很久的原因后,发现是打其它未登录的人时,因为别人未登录,数据没有调整过来,导致其原先的属性加成还在, 登录的用户被清理过,导致双方加成不一样;

总结:
    改老数据时,一定要把用户所有可能的情况考虑清楚; 什么情况下触发修改,什么情况下没有被触发,没有被触发会产生什么问题;
    还有特别要注意,并发的问题; 


本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 7

这个锅 产品40%、程序员30%、测试30%

2年前 评论

这个应该想到的吧

2年前 评论

登陆时是一个状态,! 登陆时也是一个状态

2年前 评论
Junwind

正常打怪,打boss都是正常的,核心原因是其它离线的真实玩家的数据,没用经过登录时触发调整旧数据; 导致pk时对面如果是离线的玩家,此时获取的离线玩家的数据是不正常的状态; 这个主要怪我疏忽了这一点, 刚好赶上测试请假,改老数据,重构功能时一定要慎之又慎!!!

2年前 评论
李铭昕

什么游戏

2年前 评论
lun1bz 2年前
李铭昕 (作者) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
躺平大叔 @ 躺平社区
文章
142
粉丝
17
喜欢
107
收藏
63
排名:258
访问:3.7 万
私信
所有博文
社区赞助商