ThinkPHP 事务锁

ThinkPHP 的 事务锁 该怎么样使用
在并发请求时,生成的订单会超过库存
该怎怎么办

function {
            ...
            // 查询库存
            ...
            // 用户积分是否足够
            ...
            // 生成订单并扣除库存

            ...
   }
阅读 4.3k
3 个回答

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

function {
            ...
            // 查询库存
            ...
            // 用户积分是否足够
            //开始事务
            ...
            // 生成订单并
            
            //除库存
             //提交事务,失败则回滚
            ...
   }

function {
1.開啟事務

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

4.提交事務
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题