起因:不同类型的同一设备拿不同rediskey的缓存
//有设备信息
String redisKey = "";
boolean hasDeviceInfo = StringUtil.isNotEmpty(dto.getServiceId());
if (hasDeviceInfo) {//同一用户同一设备重复请求
redisKey = ModuleRedisWeiXinPrefix.Prefix.TMPQRCODE.getCode().concat(MD5.MD5Encode(dto.toString()));
if (version9Scene.contains(dto.getType())){//其他模式拿缓存的
redisKey = ModuleRedisWeiXinPrefix.Prefix.TMPQRCODE.getCode().concat(MD5.MD5Encode(dto.version9ToString()));
}
//同一用户同一设备重复请求
String url = redisSession.get(redisKey);
if (StringUtil.isNotEmpty(url)) {
return url;
}
}
发布到正式后,验证,会随机返回两个不一样的url,当时根据上述代码猜测是不是有台服务没更新到,找运维确认,jekens是都发布完了的,都有最新的发布日期。
最后运维分别绑定三台服务的ip,手动链接访问接口,哪台返回不一样的url,应该就是哪台的问题。
最终定位到了具体的服务器。
进目录看到了
原来tomcat没有把root删掉,导致没更新。
运维说后期是要用脚本删除root,不能依赖tomcat。