采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
假设一个司机抢到订单了,在删除 Redis 之前,另外一个线程也进入事物进行抢单,这样就会存在多个司机抢到同一个订单,这个问题能否解决一下?在群里问了很多次都不回复,希望可以直面问题
如果A事务提交成功,B事务在A事务提交之后开启的,B事务抢单失败。如果B事务在A事务提交之前开启的,A和B只有一个事务能提交成功。
如果A事物执行成功,在删除缓存之前B又执行了事物,还是有问题
A事务提交成功,缓存数据里面就已经保存司机id,B事务在执行中会先判断缓存是否包含司机ID,B事务无法提交
代码中并没有判断缓存中是否包含司机ID,而是订单ID的key。并且如果有很多线程已经经过上面的if判断了呢?这个问题是存在的,我测试过了,老师你测过吗?
登录后可查看更多问答,登录/注册
50000+代码,300+技术点,慕课网明星讲师为你私人订制
4.9k 15
699 10
737 10
478 10
814 9