目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7089.2k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(30)
赞(0)

删除过期订单

用户下单后,如果长时间不支付,则该商品始终被用户占据,其他用户也无法购买。我们需要给订单设置过期时间,过期后修改订单状态。如何能够在订单生成后一段时间执行代码,验证订单状态呢?有如下一些处理方式:

  • 定时任务定期扫描所有订单,发现过时后删除。这种方式较为浪费资源,时效性也较低,不建议使用。
  • 利用消息队列中的延时消息,过一段时间后查询订单是否已经支付,未支付删除订单。该方式建议使用
  • 设置redis过期时间,并编写redis过期监听方法,当redis中的订单过期后回退商品库存。该方式建议使用

对于普通订单,我们采用第二种方式删除过期订单

  1. 在订单服务模块添加RocketMQ起步依赖

  2. shopping_orders_service-dev.yaml中添加RocketMQ相关配置

  3. 在商品服务模块的resources目录下建立META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,添加如下内容:

  4. 在RocketMQ中创建队列check_orders_queue

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2