上线后菜单卡片未显示
背景
需要开发儿童模式,对菜单、通知等页面根据年龄段进行隐藏。为了兼容二期需求,这次的开发划分了三个年龄段:14岁以下,14~17岁,18岁以上。
实现方式
涉及的表添加一个可见度字段,默认值为7,通过和客户端传递过来的值做与运算,就能实现按年龄段返回对应的数据。
过程
14:34运维部署完之后,作为服务器开发,第一时间通知了客户端人员进行基本的测试,我这边也进入app检查功能是否正常,由于对菜单页面不够熟悉,所以并没有注意到菜单卡片缺失这个问题。我这边14:37检查完之后就直接反馈运维继续部署了。
14:48客户端同事反馈看不到菜单卡片,开始根据log-id找到对应日志查看报错信息:空指针异常。
14:59让运维回退版本。之后组内成员一起排查问题,最终得出是缓存原因,旧的缓存中,并没有这个新字段,导致代码中获取这个值的时候,报了空指针异常。
解决
除了客户端未传此参数,要给默认值之外,从缓存读取到的数据,也要判断是否有这个字段,同时要给到默认值。