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

JAVA全系列 教程

3762个小节阅读:7089.7k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

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

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

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

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(640)
赞(0)

删除过期订单

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

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

在本项目中,我们采用第三种方式删除过期订单

  1. 设置订单过期时间:

  2. 配置redis监听器

  3. 创建redis监听类

  4. 修改支付代码,支付时删除复制订单

  5. 这样生成订单时还会生成一个复制订单,订单数据过期触发过期事件,在过期事件中找到订单的复制订单,从复制订单中拿到商品数据,对商品进行回退库存。

商品秒杀_删除过期订单(1) 商品秒杀_删除过期订单(3)

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

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

京ICP备14032124号-2