抢单问题?

来源:4-26 订单微服务的智能抢单,Redis事物+AOF模式(一)

weixin_慕先生1250868

2022-07-05

redis事务执行完成之后,会将redis中的对应订单的value改为司机id,然后提交事务,成功之后又删除了这个缓存;会不会出现一个用户提交了事务,但是还没有删除缓存,此时订单被另一个司机的事务给修改了?
是否可以将事务里面的逻辑改为直接删除,当前司机在事务中删除该订单缓存,如果事务提交成功则说明成功抢单。提交失败说明抢单失败。

写回答

1回答

神思者

2022-07-05

我觉得你说的场景不存在,这里没有异步线程参与,都是同步执行的。一个司机的Redis提交成功,其他抢单Redis事务不可能提交成功。你去百度一下Redis单线程机制和Redis事务机制,就清楚了。

0
9
鬼影小天才
回复
神思者
这位同学说的问题是存在的,判断是否存在,执行事务,删除缓存,这三个操作都不具备原子性有并发安全问题,
2023-09-13
共9条回复

多端全栈项目实战,大型商业级代驾业务全流程落地

50000+代码,300+技术点,慕课网明星讲师为你私人订制

600 学习 · 423 问题

查看课程