使用场景例如: 有3件商品 10 个人同时去购买容易出现超额出售,
Db::startTrans(); //开启事务
try{
//lock(true) 意思是加锁
$num = Db::name(' goods ')->lock(true)->where('goods_id',1)->value('num') // 库存
if ( $num <= 0){
return;
}
//生成订单 减少库存
具体操作就行
}catch( \Exception $e){
}
//测试工具 apache 下面的ab 工具 目录位置
/lib 打开命令行
ab -n 100 -c 100 http://www.xyh.com/index/index/mysql_unlock
意思是 -n100次请求 每次-c 100个用户 url地址
详情地址 https://blog.csdn.net/qq_16887641/article/details/96855254