首页 > 其他分享 >app测试日常踩坑——gocache缓存的过期时间和生成间隔问题

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

时间:2023-09-14 19:57:09浏览次数:33  
标签:缓存 错误 过期 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生成的。所以此类问题要重点注意。

标签:缓存,错误,过期,app,生成,排查,gocache
From: https://www.cnblogs.com/douzi1119/p/17703294.html

相关文章

  • Docker 深度清除镜像缓存 (overlay2)
    Docker深度清除镜像缓存(overlay2)一般情况下,运维清理镜像是通过命令dockerrmi删除镜像的。但是这条命令不会删除dockerbuild命令产生的缓存文件。这个时候需要使用dockersystem的系列命令来做相关处理。dockersystem--help输出:#输出Usage:dockersystemCO......
  • iOS开发实战-仿小红书App开发-1-App创建与Git
    1.新建项目 2.添加Git仓库 添加自己的gitHub账号.  3.Token获取方式: Settings. DeveloperSettings. 获取个人Token. 填写相关内容.得到Token后复制它,拿到Xcode中登录. 填写相关信息. 创建后打开GitHub,查看自己的所有仓库,发现小粉书仓库已......
  • Laravel 执行流程(三)之 探索 Application 构造函数
    备注:纯手打的学习笔记,如有错误之处请指正,谢谢。希望大家学的开心!说明:本来应该是说Container类(下)的,不过经过学习,直接看这个类实在不好理解,一会是绑定,一会共享实例,真心不知道说的什么....还是先从程序的入口处,顺藤摸瓜,用到的时候再结合上下文理解,比较容易消化,希望理解,抱歉!OK,从入......
  • 应对CDN缓存的一个小技巧
    工作中把一个文件放在CDN上面实时更新,并提供http下载地址。但是由于CDN缓存,下载下来的文件其实是几个小时以前的了。解决方法:下载请求的某尾添加一个随机参数,举例如:http://xxx.cdn.com/abc/123/test.xml?timestamp=12345678其中http://xxx.cdn.com/abc/123/test.xml为该文件的真实......
  • 基于HTTP协议的客户端缓存
    提到缓存,一般都会想起redis、memcached等分布式缓存系统。虽然使用这些服务器端缓存速度能提升不少,但其实还是需要客户端下载这部分数据,目前在移动互联网领域,节省流量是很有必要的,因此工作中也就需要加入客户端缓存的相关技术。 怎么使用客户端缓存?1、用http报头中的last-modified......
  • 获取JavaApplication当前工程路径
    前日因工作中使用到日志和配置工具类,使相关信息输出文件中,因此总结了一下java中获取当前路径的方法(非web工程)。1、File类:Filefile=newFile(".");System.out.println(file.getCanonicalPath());//如果是..则返回上一级文件夹System.out.println(file.getAbsolut......
  • 146. LRU 缓存
    请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果......
  • app直播源码,Vue 禁止输入框输入空格
    app直播源码,Vue禁止输入框输入空格 <template> <div>  <input   type="text"   v-model="text"   @input="(e)=>text=e.target.value.replace(/\s/g,'')"  > </div></template><scri......
  • 直播app开发,CSS3动画实现左右无缝滚动图
    直播app开发,CSS3动画实现左右无缝滚动图<viewclass="shortList_con"><viewclass="scrollCon":style="'width:'+(shortRouteList.length)*210+'rpx'"><viewclass="shortItem"v-for="(item,index......
  • 关于缓存系统的mutex模式实现
    这篇blog是在上一家互联网公司某产品开发过程中的一些经验总结,整理一下分享上来。 关于mutex模式:对于高并发大访问量的应用,一般都会在数据库访问前加一层缓存系统。但是如果某一时刻某个缓存的key失效,而reload该key缓存的时间又比较长,导致大量的请求直接访问数据库,则会直接将数据......