请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,请问Redis事务中如果有超时未支付的订单会怎样处理呢?

老师,可以这样理解吗:下单时会减库存同时也会保存用户信息,如果有超时未支付订单,则会修改kill_num和kill_list,秒杀页面也会显示还有库存?
老师,实际情况中,kill_list列表是不是还包含用户的支付情况和地址等信息,当秒杀结束后,会对应着kill_list表生成数据库中的订单,再进行后续业务。
不知道我有没有表述清楚😂️

正在回答 回答被采纳积分+3

1回答

神思者 2020-03-23 10:23:42

订单分为 3 个状态:

第一种 初始化(抢到未付款-扣减库存),

第二种 支付中(正在支付),

第三种  支付成功/失败(成功不会滚库存,失败才回滚),

在第二种支付状态的时候不参与 15 分钟超时回滚的定时任务 或者 重新计时(这个时间是订单超时的时间)。

在秒杀的过程中就可以在数据库中生成订单信息。如果在Redis里面缓存订单,不利于用户去掉订单后的恢复库存

0 回复 有任何疑惑可以回复我~
  • 提问者 阿加莎信徒 #1
    谢谢老师,所以秒杀业务中,用户秒杀成功后会进入第一种初始化生成订单信息,若取消或超时会回滚;您讲的秒杀demo是起到一个防止超售的作用,可以这样理解吗?
    回复 有任何疑惑可以回复我~ 2020-03-23 10:31:19
  • 神思者 回复 提问者 阿加莎信徒 #2
    是的,可以这样理解
    回复 有任何疑惑可以回复我~ 2020-03-23 10:32:55
  • 提问者 阿加莎信徒 回复 神思者 #3
    谢谢老师?️
    回复 有任何疑惑可以回复我~ 2020-03-23 10:33:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信