数据编号+1 并发问题解决
//正常写法,获取最后一条数据,新的单据编号+1,有并发问题
$last = Article::orderByDesc('id')->first();
$data = [
'code' => $last->code + 1,
];
$article = Article::create($data);
//---------------------------------------------------------------------------------//
//解决并发问题 测试ab -t 6 -c 20 http://study.local/xxx
DB::beginTransaction();
$last = Article::lockForUpdate()->orderByDesc('id')->first();
$data = [
'code' => $last->code + 1,
];
$article = Article::create($data);
DB::commit();
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: