关于创建单元时候验证广告计划是否存在的问题

来源:5-17 推广单元限制服务功能实现(2)

慕码人3048887

2019-09-24

一哥你好,在创建广告单元unit的时候,我们通过查询传递进来的广告计划plan是否存在,从而判断是否应该插入单元unit。
那么在并发场景下,此时有人正在事务A中删除该广告计划,但是尚未提交,此时我们在事务B中验证计划是存在的,但是在B事务插入单元的时候,A事务提交了,计划已经不存在了,此时B事务也提交了,看起来就像是插入推广单元的B事务正常提交了,但是其实应该回滚。
我个人认为这个地方,应该在计划表中加入一个LockState字段,然后每次创建推广单元的时候,先去修改LockState字段,使得该行广告计划数据其加上独占锁后,在同一个事务中验证广告是否存在,最后再去插入广告单元,等事务结束时,释放该独占锁
写回答

1回答

张勤一

2019-09-24

同学你好:

    你说的这种情况不会存在的,因为广告计划这种都是分用户,分账号的。但是,如果是并发的场景下,可以使用你说的那种类似于乐观锁的方式去解决。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

1
2
张勤一
回复
慕码人3048887
几乎都是用加锁的方式处理
2019-09-24
共2条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程