使用RabbitMQ实现延迟关单功能
Gitee地址:https://gitee.com/yuyuuyuy/micro-mall
文章目录
- 使用RabbitMQ实现延迟关单功能
- 前言
- 一、实现架构
- 二、效果展示
-
- 1.超时自动关单
- 三、代码实现
- 总结
前言
该模块用于解决用户下单以后,订单超时如何取消订单的问题。
一、实现架构
用户进行下单操作(会有锁定商品库存、使用优惠券、积分一系列的操作);
生成订单,获取订单的id;
将该订单发送到RabbitMQ用于保存订单到mysql的队列。
按订单超时时间发送延迟消息给RabbitMQ,消息过期后转发到死信队列,从而实现订单超时后触发取消订单的操作;
如果用户没有支付,进行取消订单操作(释放锁定商品库存、返还优惠券、返回积分一系列操作)。
架构图如下
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!