关于创建单元时候验证广告计划是否存在的问题
来源:5-17 推广单元限制服务功能实现(2)

慕码人3048887
2019-09-24
一哥你好,在创建广告单元unit的时候,我们通过查询传递进来的广告计划plan是否存在,从而判断是否应该插入单元unit。
那么在并发场景下,此时有人正在事务A中删除该广告计划,但是尚未提交,此时我们在事务B中验证计划是存在的,但是在B事务插入单元的时候,A事务提交了,计划已经不存在了,此时B事务也提交了,看起来就像是插入推广单元的B事务正常提交了,但是其实应该回滚。
我个人认为这个地方,应该在计划表中加入一个LockState字段,然后每次创建推广单元的时候,先去修改LockState字段,使得该行广告计划数据其加上独占锁后,在同一个事务中验证广告是否存在,最后再去插入广告单元,等事务结束时,释放该独占锁
写回答
1回答
-
张勤一
2019-09-24
同学你好:
你说的这种情况不会存在的,因为广告计划这种都是分用户,分账号的。但是,如果是并发的场景下,可以使用你说的那种类似于乐观锁的方式去解决。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
122019-09-24
相似问题