大家好!
今天跟大家一起探讨一个场景:用户对商品下单,约定30分钟没支付,超时订单将被系统自动关闭。
你会如何实现呢?
早期方案:扫表
定时任务,每分钟去查询数据库,查询超时没有支付的,就修改订单状态。
扫表实现
思路清晰,实现起来也比较简单,但是遇到的问题也比较多,比如:
- 每分钟都去查询数据库,数据库的压力比较大。
- 有一定的延迟。
方案升级:消息队列
用户下单成功,就发送到消息队列。时间到了,消费端拿到数据,就查询数据,判断订单状态,如果没有支付,就修改订单状态。
消息队列实现
目前落地的是采用 RabbitMQ 的延迟队列。用户创建订单成功,就加入到 MQ 的延迟队列,时间到了,就会自动消费,然后关单。
點擊查看更多內容
1人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦

