拼团功能,开团并发问题,使用数据库行锁方案
参考网址:https://www.sunzhongwei.com/using-laravel-sharedlock-and-lockforupdate-for-table-row-locks
个人觉得这种场景下并发数量比商品秒杀小得多,一个团的拼团入口由用户的朋友圈有关,可以使用数据库行锁控制。
sharedLock 与 lockForUpdate 相同的地方是,都能避免同一行数据被其他 transaction 进行 update。
不同的地方是:
- sharedLock 不会阻止其他 transaction 读取同一行
- lockForUpdate 会阻止其他 transaction 读取同一行 (需要特别注意的是,普通的非锁定读取读取依然可以读取到该行,只有 sharedLock 和 lockForUpdate 的读取会被阻止。)