app测试日常踩坑——gocache缓存的过期时间和生成间隔问题

问题:自动化监控平台添加的分类详情页的接口报错,分类详情页校验失败,看到的错误信息是接口响应错误,信息如下:{"errors":{"id":"0","code":"44010102","level":"1","status":"200","title":"参数错误","popup_title":"","details":"参数错误"}}

排查:根据错误日志排查发现在进入分类详情页的时候会根据标签的id,去查询一个标签的信息缓存,是gocache缓存,拿标签的名称和描述信息。报上述错误就是没有拿到这个信息,导致的。经开发排查pod日志发现,五分钟就会有一条这样的报错。而这个gocache设置的是5分钟过期,刚好吻合。继续排查发现这个gocache是有个定时来刷新,五分钟更新一次。就在缓存刚过期的间隙,缓存还没有刷新所以会导致这个错误。

结论:更新缓存的时间,和设置缓存的过期时间要多加思考,缓存的过期时间要比更新缓存的定时时间要长,不然就会出现缓存刚好过期了,还没有及时生成的问题。书城项目多会由用户触发生成gocache,如果没有gocache就会读redis缓存。所以不会现在这个问题,而此处比较特殊的点是,只读gocache,而定时生成gocach是直接读mysql生成的。所以此类问题要重点注意。

posted on 2023-09-14 19:42  豆子1119  阅读(72)  评论(0编辑  收藏  举报

导航