ThinkPHP 的 事务锁 该怎么样使用
在并发请求时,生成的订单会超过库存
该怎怎么办
function {
...
// 查询库存
...
// 用户积分是否足够
...
// 生成订单并扣除库存
...
}
ThinkPHP 的 事务锁 该怎么样使用
在并发请求时,生成的订单会超过库存
该怎怎么办
function {
...
// 查询库存
...
// 用户积分是否足够
...
// 生成订单并扣除库存
...
}
function {
1.開啟事務
// 查询库存(2.使用表鎖或者行鎖(防止高並發出現數據錯誤,但性能消耗會高,推薦行鎖) 假如你這裡考慮到性能問題,建議考慮使用nosql或者使用樂觀鎖。)
// 用户积分是否足够(3.不夠就rollback)
// 生成订单并扣除库存
4.提交事務
}
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
扣除库存 和 生成订单 都放在事务操作里面