微信小游戏code登录优化
下图是现有接口流程图,接口请求均值是3S,有没有可优化的空间,或是其他实现方式
增加获取openid后的代码逻辑方法,欢迎指正
数据库是腾讯mysql rds实例,单表数据在3000万左右,sql有走索引,sql执行在10ms 整个方法执行耗时平均是 200ms
private synchronized Player login(String openid,AnchorLog anchorLog){
//查询用户
Player player = playerService.findPlayerByOpenid(openid,anchorLog.getGameId());
//新用户需建立用户信息
if (player == null) {
player = new Player(openid,anchorLog.getGameId());
player.setNews(0);
playerService.savePlayer(player);
}else{
player.setNews(1);
//禁用直接返回
if(1==player.getState() || (player.getDisableTime()!=null && player.getDisableTime().getTime()>System.currentTimeMillis())){
return player;
}
}
//删除别的登录设备
String st = getSessionTrackId(player.getId()+"");
if(StringUtils.isNotBlank(st)){
delSessionPlayer(st); //删除redis数据
}
//生成trackId
player.setTrackId(IdUtil.simpleUUID());
//已经登录,删除前面登陆trackId
String playerId = player.getId().toString();
boolean bool = redisUtil.isExists(ReflectUtil.getCallName()+playerId);
if(bool){
String trackId = redisUtil.getString(ReflectUtil.getCallName()+playerId);
delSessionPlayer(trackId);
//记录本次登录状态
redisUtil.set(ReflectUtil.getCallName()+playerId,player.getTrackId());
}
//查询玩家历史所玩区服
player.setGameArea(gameService.findGameAreaByPlayer(player.getId(),player.getGameId()));
setSessionPlayer(player);
return player;
}
接口请求均值是3S,流程没有什么问题,主要是要优化后台的性能。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
增加获得openid后的逻辑代码,欢迎指正