为了账号安全,请及时绑定邮箱和手机立即绑定

ThinkPHP 事务锁

ThinkPHP 事务锁

PHP
慕无忌1623718 2019-03-06 11:19:11
ThinkPHP 的 事务锁 该怎么样使用在并发请求时,生成的订单会超过库存该怎怎么办 function { ... // 查询库存 ... // 用户积分是否足够 ... // 生成订单并扣除库存 ... }
查看完整描述

3 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

扣除库存 和 生成订单 都放在事务操作里面

function {
            ...
            // 查询库存
            ...
            // 用户积分是否足够
            //开始事务
            ...
            // 生成订单并
            
            //除库存
             //提交事务,失败则回滚
            ...
   }
查看完整回答
反对 回复 2019-03-18
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

function {
1.開啟事務

 // 查询库存(2.使用表鎖或者行鎖(防止高並發出現數據錯誤,但性能消耗會高,推薦行鎖) 假如你這裡考慮到性能問題,建議考慮使用nosql或者使用樂觀鎖。)
 // 用户积分是否足够(3.不夠就rollback)
 // 生成订单并扣除库存

4.提交事務
}

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 923 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信