删除订单问题
来源:4-31 乘客端RR轮询司机接单(二)

颜淮川
2023-06-28
这边按逻辑来讲如果要把订单取消 删除订单,其实直接判断是否存在true然后删除redis缓存 做个这样的事务也行吧(还能保证原子性和时效),也没必要在删除订单里面也要加个乐观锁+事务 重新设置订单 感觉冗余了,而且在多数据情况下,一般几百上千个乘客同时取消订单,也没关系,就算 乘客A并发10次订单当 第一次执行的时候已经把redis删除了,后续缓存再进来看到没有key就会弹出删除失败,况且如果有漏网之鱼冲过redis缓存那就删除订单,撑死删除失败。但是订单数据一定会在第一次请求中删除掉吧
写回答
2回答
-
神思者
2023-06-28
假设现在乘客要修改订单,但是该订单有其他司机正在抢单,是不是会造成Redis冲突?如果有司机已经抢单成功了,就不能无条件取消订单了。你直接删除Redis缓存的做法是不对的,必须要用Redis事务去提交,如果事务失败,说明有司机接单了,需要额外设置有偿取消订单的功能
042023-06-28 -
颜淮川
提问者
2023-06-28
而且我最搞不明白的一点是删除订单,如果判断的订单存在了,此时突然有司机接单,那么这单是删除呢?还是不删除呢?
00
相似问题