前两天碰见一个问题:我服务端发布一个接口,客户端在调用的时候异步调用接口后取消,然后修改数据重新推,由于网络延迟原因上一个请求还没到服务器后一个请求又过来了,在服务端接收到两个请求时差几毫秒,业务中需要做一个检查更新或插入的操作,由于前一个请求与后一个请求都没查到数据,同时执行了插入操作,业务表报唯一约束错误。
解决办法:1:增加创建时间字段,每次请求时间不同
2:数据直接入库,捕获唯一约束异常后根据创建时间与数据库中时间比较判断是否需要做更新
前两天碰见一个问题:我服务端发布一个接口,客户端在调用的时候异步调用接口后取消,然后修改数据重新推,由于网络延迟原因上一个请求还没到服务器后一个请求又过来了,在服务端接收到两个请求时差几毫秒,业务中需要做一个检查更新或插入的操作,由于前一个请求与后一个请求都没查到数据,同时执行了插入操作,业务表报唯一约束错误。
解决办法:1:增加创建时间字段,每次请求时间不同
2:数据直接入库,捕获唯一约束异常后根据创建时间与数据库中时间比较判断是否需要做更新