老师,请问Redis事务中如果有超时未支付的订单会怎样处理呢?
来源:6-7 秒杀业务相关面试题【莫慌,难不倒我们】

阿加莎信徒
2020-03-23
老师,可以这样理解吗:下单时会减库存同时也会保存用户信息,如果有超时未支付订单,则会修改kill_num和kill_list,秒杀页面也会显示还有库存?
老师,实际情况中,kill_list列表是不是还包含用户的支付情况和地址等信息,当秒杀结束后,会对应着kill_list表生成数据库中的订单,再进行后续业务。
不知道我有没有表述清楚😂️
写回答
1回答
-
神思者
2020-03-23
订单分为 3 个状态:
第一种 初始化(抢到未付款-扣减库存),
第二种 支付中(正在支付),
第三种 支付成功/失败(成功不会滚库存,失败才回滚),
在第二种支付状态的时候不参与 15 分钟超时回滚的定时任务 或者 重新计时(这个时间是订单超时的时间)。
在秒杀的过程中就可以在数据库中生成订单信息。如果在Redis里面缓存订单,不利于用户去掉订单后的恢复库存
032020-03-23
相似问题