redis实现定期关单

news/2025/9/25 16:43:29/文章来源:https://www.cnblogs.com/zqlmianshi/p/19111486
在SpringBoot项目中,实现订单超过24小时过期并自动关单,常见有以下几种方案,我会逐一说明,并给出推荐实现:

✅ 推荐方案:使用 延迟队列(DelayQueue) 或 消息队列(如RabbitMQ延迟消息)

方案1:使用 Redis + 延迟队列(Redisson延迟队列)

优点: 高性能、易扩展、适合分布式系统
实现步骤:
  1. 引入Redisson依赖:
xml
复制
<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.23.4</version>
</dependency>
 
  1. 下单时,将订单ID加入延迟队列,延迟时间为24小时:
java
复制
RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue("orderDelayQueue");
delayedQueue.offer(orderId, 24, TimeUnit.HOURS);
 
  1. 启动一个监听线程,消费延迟队列:
java
复制
RQueue<String> queue = redissonClient.getQueue("orderDelayQueue");
RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(queue);new Thread(() -> {while (true) {try {String orderId = queue.take(); // 阻塞等待过期订单// 查询订单状态,如果未支付,则关单Order order = orderService.getById(orderId);if (order != null && "UNPAID".equals(order.getStatus())) {orderService.closeOrder(orderId);log.info("订单已关闭:{}", orderId);}} catch (InterruptedException e) {Thread.currentThread().interrupt();break;}}
}).start();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细介绍:5G nr频段_5g哪个信道信号强

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

第18章 Day22 高阶混淆ast进阶

网站:https://www.mps.gov.cn/ 内容:加速乐一键解混淆 混淆代码 var _0x2414 = [wr7CksK8Uw==, wrbDosKFOQ==, woZNHCg=, w48zCBM=, wrbCnAka, bcOJKcO8, KCnDpMK3, w6F9FyY=, w5Rjw5xZ, WcKGGn4=, w7BVw6hs, M8OVwp…

关于ubuntu 用户切换的细节 su - user 和su user

只在「登录交互式 shell」(login shell)时执行 /etc/profile 会去跑 /etc/profile.d/*.sh。 如果你用 su seed,默认启动的是 非登录 shell,不会跑 /etc/profile,自然也不会加载 /etc/profile.d/conda.sh。 如果你…

网站的制作公司菜单宣传网站怎么做的

【Apache Doris】周FAQ集锦&#xff1a;第 1 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目&#xff01; 在这个栏目中&#xff0c;每周将筛选社区反馈的热门问题和话题&#xff0c;重点回答并进行深入探讨。旨在为广大用户和…

新开传奇网站180合击国际摄影网站

为什么xml_rpc服务端读取数据都是通过file_get_contents(‘php://input, ‘r)。而不是从$_POST中读取&#xff0c;正是因为xml_rpc数据规格是xml&#xff0c;它的Content-Type是text/xml。php://input碰到了multipart/form-data在使用xml-rpc的时候&#xff0c;server端获取cli…

网站开发软硬件配置大丰区住房和城乡建设局网站

距离春节还有不到一个月你准备好给家人的春节礼物了吗&#xff1f;疫情下&#xff0c;为了让程序猿同学开心加班小编提前准备了一份牛年大礼 周五福利日&#xff0c;人人都可免费领会员&#xff01;助你提前实现CSDN会员卡自由&#xff01;奖品多多&#xff0c;不仅有CSDN月卡会…

用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤

Apache SeaTunnel 能够实现 MySQL 到 Doris 的全量和增量数据同步,同时也支持 SQL 级别的数据过滤。Apache SeaTunnel 能够实现 MySQL 到 Doris 的全量和增量数据同步,同时也支持 SQL 级别的数据过滤。以下是具体实现…

在CodeBolcks下wxSmith的C++编程教程——使用自定义绘制和鼠标处理创建项目

0.前言欢迎来到 wxSmith 教程页面!wxSmith 与 Code::Blocks、wxWidgets 和 C++ 编译器相结合,为您提供一种所见即所得的方式来创建具有图形用户界面 (GUI) 的应用程序。该组合形成了一个用于快速应用程序开发 (RA…

trae 配置mysql_mcp

trae 配置mysql_mcpMySQL MCP 安装配置完整指南 🎉 成功案例 版本: @benborla29/mcp-server-mysql@2.0.2 状态: ✅ 安装成功 环境: Windows + Trae.ai 📋 安装步骤 1. 安装稳定版本 npm install -g @benborla29/mc…

Apache NiFi 1.28.1 集群 + Kerberos 认证 + 多租户模式部署

Apache NiFi 1.28.1 集群 + Kerberos 认证 + 多租户模式部署1. 系统要求Java 8 或 Java 112. 物料包准备包名 下载地址 说明nifi-1.28.1-bin.zip https://archive.apache.org/dist/nifi/1.28.1/nifi-1.28.1-bin.zip Ni…

【cv】cycleGAN代码解析:train.py

【cv】cycleGAN代码解析:train.pyPosted on 2025-09-25 16:37 SaTsuki26681534 阅读(0) 评论(0) 收藏 举报import time # 计时:统计每轮/每次迭代耗时 from options.train_o…

做移动网站优化网站建设过程中要怎么打开速度

这次我们将学着怎么从一个深度图里面导出边界。我们对3种不同种类的点很感兴趣:物体的边框的点&#xff0c;阴影边框点&#xff0c;和面纱点(在障碍物边界和阴影边界)&#xff0c;这是一个很典型的现象在通过雷达获取的3D深度。 下面是代码 /* \author Bastian Steder */#incl…

注册 网站开发 公司重庆招聘网

作者 | 轩辕之风O来源 | 编程技术宇宙相信大家这两天应该被这么一条新闻刷屏了&#xff1a;这个漏洞到底是怎么回事&#xff1f;核弹级&#xff0c;真的有那么厉害吗&#xff1f;怎么利用这个漏洞呢&#xff1f;我看了很多技术分析文章&#xff0c;都太过专业&#xff0c;很多非…

创建网站怎么创电子商务网站有哪些类型

项目介绍&#xff1a; 使用javaspringbootmysql开发的法律咨询网&#xff08;文书&#xff09;&#xff0c;系统包含管理员、用户角色&#xff0c;功能如下&#xff1a; 管理员&#xff1a;登录系统&#xff1b;用户管理&#xff1b;文章管理&#xff08;法律知识&#xff09…

网站建设公司业务在哪里来百度网站的总结

I老师就职于双非二本院校&#xff0c;希望通过出国研修以提升科研背景&#xff0c;在公派访学和申请导师出资的博士后之间&#xff0c;其选择了后者。最终我们落实了美国耶鲁大学的职位&#xff0c;头衔为Associate Research Scientist&#xff08;副研究科学家&#xff09;&am…

企业网站 联系我们电商培训机构有哪些?哪家比较好

常用示例 入门 Hello CMake CMake 是一个用于配置跨平台源代码项目应该如何配置的工具建立在给定的平台上。 ├── CMakeLists.txt # 希望运行的 CMake命令 ├── main.cpp # 带有main 的源文件 ├── include # 头文件目录 │ └── header.h └── src # 源代码目录 ├…

深入解析:李宏毅2023机器学习作业 HW01实操

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于Java+SpringBoot+SSM,Flask福聚苑社区团购体系(源码+LW+调试文档+讲解等)/福聚苑社区/团购系统/社区团购/福聚苑/团购/社区/环境/福聚苑小区/在线团购/社区购物

基于Java+SpringBoot+SSM,Flask福聚苑社区团购体系(源码+LW+调试文档+讲解等)/福聚苑社区/团购系统/社区团购/福聚苑/团购/社区/环境/福聚苑小区/在线团购/社区购物pre { white-space: pre !important; word-wrap: nor…

按需引入echarts

--// echarts-config.js // ECharts按需引入配置文件 import * as echarts from echarts/core; import {BarChart,LineChart,PieChart,ScatterChart,RadarChart } from echarts/charts; import {TitleComponent,Toolti…

软件构造的用户交互设计 4章

交互设计的原则 1.尽量保持一致 2.满足普遍可用性 3.提供信息反馈 4.设计对话框以产生结束信息 5.预防并成立错误 6.允许撤销操作 7.支持内部控制点 8.减轻短时记忆负担 交互设计的基本过程 标识和建立用户需求 提出满…