redis做库存限制&兼容安卓ios设备返回
安卓设备返回默认不刷新页面
在微信内部跳转到中转页面的时候,ios设备返回时候,当前页面可以继续执行之前的js代码,但是安卓的设备不会继续执行,当前页面也不会刷新,所以需要安卓的设备特殊处理,在安卓设备中返回当前页面的时候主动刷新。
//解决ios回退不刷新问题
var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
if(!isIOS){
window.onpageshow = function (e) {
if(e.persisted || (window.performance && window.performance.navigation.type == 2)){
window.location.reload();
}
}
}
记录一次对库存做限制的操作
01、产品的打开页查看库存
02、产品的购买操作后台再次校验库存
1、首先查询库存总量,做5分钟缓存,这里的缓存五分钟可能后台业务人员会修改库存,若修改库存直接刷新库存缓存。
2、查询已经被消费的数量(这里的数量指定的是预下单的和支付成功的单)库存的释放这里会用到
3、缓存当前的库存为5分钟,这个时间小于当前订单取消支付之后自动失败的时间
4、购买的时候先查缓存(缓存的库存)、最后支付之前减库存。
5、关于未支付单的库存释放、当订单失效默认查询消耗的库存时直接就忽略掉了这部分的库存占用。