首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解决线上并发更新问题

周末发现APP调用后台出现异常,返现报文很慢,有时候还会报错。

查找后台日志发现一个更新非常慢,源头就是下面的语句

userLoginDAO.updateByPrimaryKey(userLoginDO);

这个接口为什么会非常慢呢?

调查发现,疫情期间,APP的使用人员增多,并且APP在调用每个接口前都会调用一下登录接口,并且用同一个系统账号。

对同一个账号的并发更新导致mysql锁等待,并发高了这个更新操作需要等待好久才能完成。

紧急处理:

userLoginDO对象没有大变动的情况下,不去执行下面的更新操作

userLoginDAO.updateByPrimaryKey(userLoginDO);

问题虽然暂时解决了,但是还有很大优化空间,比如APP在获取的token没过期之前,不用重复调用login接口。

补充上UserLoginDO对象定义

@Data

@Table(name = "user_login")

public class UserLoginDO {

/**

* 用户名,主键

*/

private String userId;

*/

private String passWord;

/**

* 生效日

*/

private Date useTime;

/**

* 失效日

*/

private Date loseTime;

/**

* 登陆失败次数

*/

private Integer loginFalseCount;

/**

* 创建者

*/

private String createOperator;

/**

* 更新者

*/

private String updateOperator;

/**

* 创建日期

*/

private Date createDate;

/**

* 更新日期

*/

private Date updateDate;

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200208A067CW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券