记一次由于缓存导致的bug
bug描述
有一张数据库表存储的是 值日员工信息,有时候可能一次性录入1个月的数据、有时候也可能隔了很多天没有录入数据,也就是说这个录数据不是很规律。
bug现象:测试人员发现,网站上三亚地区能正常显示当天值日员工信息,但是珠海地区却不能正确显示当天值日员工信息。而数据库上实际是有珠海地区值日员工信息的。更诡异的是在本地启动网站的时候珠海和三亚地区当天值日员工信息都能正常显示。
原因是因为,代码里面用了缓存,这个缓存持续时间6小时。三亚地区人员信息是早上9点录入的,珠海是下午3点录入的。当有人查看值日信息的时候,时间恰好在9点到3点之间,这样三亚的缓存里面存了数据,而珠海的缓存里面就存了0条数据。完美的解决方法就是不用缓存,每次都去查数据库,这样做的缺点是性能有影响。恰当的做法就是,判断缓存是否存在并且缓存条数是不是为0,如果缓存不存在肯定要去读数据库,并将读到的数据存入缓存中。如果读到缓存条数为0,也要去读一下数据库,将读的结果存入缓存(当然这个有可能出现不准,但是符合我们的环境)。
记一次由于缓存导致的bug的更多相关文章
- 对 Python 语法不够了解导致的 bug
对 Python 语法不够了解导致的 bug. `in` '20' in '11264,6144,4096,3072,2048,1024,300,30' Out[7]: True a_list = ' ...
- MySQL中char(36)被认为是GUID导致的BUG及解决方案
MySQL中char(36)被认为是GUID导致的BUG及解决方案 有时候在使用Toad或在程序中,偶尔会遇到如下的错误: System.FormatException GUID 应包含带 4 个短划 ...
- 请慢慢移动……由于操作快慢导致的bug
最近的工作中,遇到一个由于操作快慢不同导致的bug,原因是,操作慢的时候程序接收到了停止操作,继续处理正确,而快速操作的时候程序来不及处理操作停止的动作,导致需要传入的数据值已经改变,程序报错.这种缺 ...
- WAS缓存导致的修改文件不生效问题【转】
WAS缓存导致的修改文件不生效问题: 解决方法: 一. 修改web.xml文件,需要修改以下三个目录下的文件: 1. /opt/IBM/WebSphere/AppServer/profiles/Dmg ...
- iOS企业版应用发布(部分低版本系统)无法安装到最新版app的问题-缓存导致
通过自己网站发布企业版app时,经过测试发现在部分已安装过旧版app的低版本ios手机存在这样的问题 :扫码覆盖安装新版app,安装到的仍然是就版本的app.这样就导致部分用户一直无法更新到最新版本. ...
- 由于未清除缓存引发的bug
在写页面的时候,首先引入了本地react.js和react-dom.js 16版本(cjs)的文件,出现如下错误 发现bug后,将本地的react.js和react-dom.js文件改成16.2(um ...
- 基于antd封装一个高可用form组件 减少cv代码导致的bug
引言 在开发中台过程中 我们的原型中有很多表单,antd有表单组件,但是粒度比较细,就单纯组件而言,无可厚非,但是在开发过程中,可能会造成代码不够聚合,有些表单公共逻辑无法提取,copy paste比 ...
- 记一次清理缓存的小事情(chrome) chrome下清理缓存不生效的问题
记一次清理缓存的小事情(chrome) chrome下清理缓存不生效的问题 前端开发中会经常涉及清理缓存的事情. 在一次开发后, 需要清理缓存,一个哥们怎么清理都不生效, 于是向我求救. 在我看了下后 ...
- 记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法
原文:记CRenderTarget:DrawText()绘制中文乱码的BUG及解决办法 转载请注明出处:http://www.cnblogs.com/Ray1024 一.问题描述 在MFC中使用Dir ...
随机推荐
- AE 向已存在的要素类中添加字段
风过无痕 原文向已存在的要素类中添加字段 以前,在用AE写程序的时候,为了方便,一般都是直接新建一个MapControl窗体应用程序.这次需要解决的问题用不到窗口,就突发奇想,直接新建了一个Conso ...
- UVA Bandwidth
题目例如以下: Bandwidth Given a graph (V,E) where V is a set of nodes and E is a set of arcsin VxV, and a ...
- UTC、GTC时间和本地时间(Linux默认使用UTC时间,要修改一下)
1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/r ...
- 【69.77%】【codeforces 723A】The New Year: Meeting Friends
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【TP SRM 703 div2 500】 GCDGraph
Problem Statement You are given four ints: n, k, x, and y. The ints n and k describe a simple undire ...
- 通过onTouch来确定点击的是listView哪一个item
事实上这主要是用了ListView的一个方法,通过坐标就能够确定当前是哪一个listView,别的我就不多说了直接看看代码吧, lv_flide.setOnTouchListener(new OnTo ...
- win7
http://www.xitongiso.com/?pot http://www.potplayer.org/
- JavaScript实现form表单的多文件上传
form表单的多文件上传,具体内容如下 formData对象可以使用一系列的键值对来模拟一个完整的表单,然后使用Ajax来发送这个表单 使用<form>表单初始化FormData对象的方式 ...
- C语言数据类型取值范围解析
版权声明:本文为博主原创文章,未经博主允许不得转载. 为什么int类型的取值范围会是-2^31 ~ 2^31-1 ,为什么要减一呢? 计算机里规定,8位二进制为一个字节,拿byte来说,一个BY ...
- 关于IT增值服务"拜师学艺"价格调整的通知
经过几天的探索,在与若干潜在付费客户交流的基础上,决定对IT增值服务"拜师学艺"价格进行调整. 当前价格:年费1000元,月付100元-1年付10个月. 2015年1月1日起,年费 ...