今天跟大家一起探讨一个场景:用户对商品下单,约定30分钟没支付,超时订单将被系统自动关闭。
你会如何实现呢?
定时任务,每分钟去查询数据库,查询超时没有支付的,就修改订单状态。
思路清晰,实现起来也比较简单,但是遇到的问题也比较多,比如:
用户下单成功,就发送到消息队列。时间到了,消费端拿到数据,就查询数据,判断订单状态,如果没有支付,就修改订单状态。
目前落地的是采用 RabbitMQ 的延迟队列。用户创建订单成功,就加入到 MQ 的延迟队列,时间到了,就会自动消费,然后关单。
关于 RabbitMQ 延迟队列,可以看这篇文章:Spring Boot and RabbitMQ 初探 中关于【延迟队列】部分!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有