Redisson使用延时队列
延时队列
在开发中,有时需要使用延时队列。
比如,订单15分钟内未支付自动取消。
jdk延时队列
如果使用 jdk自带的延时队列,那么服务器挂了或者重启时,延时队列里的数据就会失效,可用性比较差。
Redisson延时队列
可以使用Redisson的延时队列。
Redisson的配置,详情见:https://blog.csdn.net/sinat_32502451/article/details/133799192
在延时队列中添加任务
public void addDelayQueue(String orderId) {RBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque("orderQueue");RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingDeque);//在延时队列中添加任务,5秒后生效delayedQueue.offer(orderId, 5, TimeUnit.SECONDS);log.info("addDelayQueue orderId:" + orderId);}
取出延时队列中的任务
取出延时队列中的任务,如果延时队列中没有任务,会阻塞,直到队列中添加了任务。
public void takeDelayQueue() {log.info("DelayQueue take start.");RBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque("orderQueue");RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingDeque);while (true) {String orderId = null;try {//取出延时队列中的任务,如果延时队列中没有任务,会阻塞,直到队列中添加了任务。orderId = blockingDeque.take();} catch (Exception e) {log.error("blockingDeque.take error.", e);}if (orderId != null) {log.info("DelayQueue get orderId:" + orderId);//实际情况不需要break,此处为了方便调试break;}}}
日志:
异步调用 takeDelayQueue()方法,不断在延时队列中拉取数据,由于队列中没有数据,所以该方法会先阻塞。
接着调用 addDelayQueue()方法,往队列中添加数据,观察日志,可以发现 5秒后,取到队列中的数据。
[2023-10-12 21:30:49.536] INFO c.c.m.c.controller.DelayQueueController [line: 63] DelayQueue take start.
[2023-10-12 21:30:54.725] INFO c.c.m.c.controller.DelayQueueController [line: 54] addDelayQueue orderId:12345
[2023-10-12 21:30:59.821] INFO c.c.m.c.controller.DelayQueueController [line: 72] DelayQueue get orderId:12345
参考资料:
https://blog.csdn.net/sinat_32502451/article/details/133799192
https://blog.csdn.net/qq_27818157/article/details/107514319
相关文章:
Redisson使用延时队列
延时队列 在开发中,有时需要使用延时队列。 比如,订单15分钟内未支付自动取消。 jdk延时队列 如果使用 jdk自带的延时队列,那么服务器挂了或者重启时,延时队列里的数据就会失效,可用性比较差。 Redisson延时队列 …...
基于php 进行每半小时钉钉预警
前言 业务场景:监控当前业务当出现并发情况时技术人员可以可以及时处理 使用技术栈: laravelredis 半小时触发一次报警信息实现思路 1、xshell脚本 具体参数就不详细解释了,想要详细了解可以自行百度 curl -H "Content-Type:appl…...
5.Python-使用XMLHttpRequest对象来发送Ajax请求
题记 使用XMLHttpRequest对象来发送Ajax请求,以下是一个简单的实例和操作过程。 安装flask模块 pip install flask 安装mysql.connector模块 pip install mysql-connector-python 编写app.py文件 app.py文件如下: from flask import Flask, reque…...
八皇后问题的解析与实现
问题描述 八皇后问题是一个古老而又著名的问题。 时间退回到1848年,国际西洋棋棋手马克斯贝瑟尔提出了这样的一个问题: 在88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。 如何找到这所有的…...
论文浅尝 | 深度神经网络的模型压缩
笔记整理:闵德海,东南大学硕士,研究方向为知识图谱 链接:https://arxiv.org/abs/1412.6550 动机 提高神经网络的深度通常可以提高网络性能,但它也使基于梯度的训练更加困难,因为更深的网络往往更加强的非线…...
进阶JAVA篇- DateTimeFormatter 类与 Period 类、Duration类的常用API(八)
目录 1.0 DateTimeFormatter 类的说明 1.1 如何创建格式化器的对象呢? 1.2 DateTimeFormatter 类中的 format(LocalDateTime ldt) 实例方法 2.0 Period 类的说明 2.1 Period 类中的 between(localDate1,localDate2) 静态方法来创建对象。 3.…...
1.1 Windows驱动开发:配置驱动开发环境
在进行驱动开发之前,您需要先安装适当的开发环境和工具。首先,您需要安装Windows驱动开发工具包(WDK),这是一组驱动开发所需的工具、库、示例和文档。然后,您需要安装Visual Studio开发环境,以便…...
Jetpack:009-kotlin中的lambda、匿名函数和闭包
文章目录 1. 概念介绍2. 使用方法2.1 函数类型的变量2.2 高阶函数 3. 内容总结4.经验分享 我们在上一章回中介绍了Jetpack中Icon和Imamg相关的内容,本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提,让我们一起Talk Android Jetpack吧&…...
openGauss指定schema下全部表结构备份与恢复
本次测试针对openGauss版本为2.0.5 gs_dump指定schema下全部表结构信息备份 gs_dump database_name -U username -p port -F c -s -n schema_name -f schema.sqldatabase_name:数据库名,要备份的数据库名称 username:用户名,数据…...
干货:如何在前端统计用户访问来源?
在前端统计用户访问来源是一个常见的需求,通过获取访问来源信息,我们可以了解用户是通过直接访问、搜索引擎、外部链接等途径进入我们的网站或应用。下面是一个详细的介绍,包括方法和实现步骤。 一、获取HTTP Referer HTTP Referer是HTTP请…...
李宏毅生成式AI课程笔记(持续更新
01 ChatGPT在做的事情 02 预训练(Pre-train) ChatGPT G-Generative P-Pre-trained T-Transformer GPT3 ----> InstructGPT(经过预训练的GPT3) 生成式学习的两种策略 我们在使用ChatGPT的时候会注意到,网站上…...
nodejs+vue+elementui酒店客房服务系统mysql带商家
视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进行操作时能够正常。 简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术:nodejsvueel…...
【网络协议】聊聊网络分层
常用的网络协议 首先我们输入www.taobao.com,会先经过DNS进行域名解析,转换为59.82.122.115的公网IP地址。然后就会发起请求,一般来说非加密的使用http,加密的使用https。上面是在应用层做的处理,那么接下来就是到传输…...
[开源]基于Vue+ElementUI+G2Plot+Echarts的仪表盘设计器
一、开源项目简介 基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的仪表盘设计器,具备仪表盘目录管理、仪表盘设计、仪表盘预览能力,支持MySQL、Oracle、PostgreSQL、MSSQL、JSON等数据集接入,对于复杂数据处理还可以使用…...
html设置前端加载动画
主体思路参考: 前端实现页面加载动画_边城仔的博客-CSDN博客 JS图片显示与隐藏案例_js控制图片显示隐藏-CSDN博客 1、编写load.css /* 显示加载场景 */ .loadBackGround{position: absolute;top: 0px;text-align: center;width: 100%;height: 100vh;background-c…...
【git的使用方法】——上传文件到gitlab仓库
先进入到你克隆下来的仓库的目录里面 比如:我的仓库名字为zhuox 然后将需要上传推送的文件拷贝到你的克隆仓库下 这里的话我需要拷贝的项目是t3 输入命令ls,就可以查看该文件目录下的所有文件信息 然后输入git add 文件名 我这边输入的是 &#x…...
Kafka 开启SASL/SCRAM认证 及 ACL授权(二)ACL
Kafka 开启SASL/SCRAM认证 及 ACL授权(二)ACL。 官网地址:https://kafka.apache.org/ kafka authentorization:https://docs.confluent.io/platform/current/kafka/authorization.html 一、开启ZK ACL(可选,内网环境,用户无机器访问权限时) 给kafka meta都加上zk的ac…...
Java8 新特性之Stream(三)-- Stream的终结操作
目录 1.forEach(Consumer) 2.reduce(BinaryOperator) 3.max([Comparator]) 4.min([Comparator]) 5.count() 6.findFirst() 7.findAny() 拓展:...
【Vue面试题二十八】、vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:vue要做权限管理该怎么做…...
1、验证1101序列(Moore)
题目要求: 用Moore型状态机验证1101序列。 题目描述: 用使用状态机验证1101序列,注意:允许重复子序列。如图 端口描述: module moore_1101(input clk,//时钟信号input clr,//reset复位信号,高电平有效in…...
Visual C++运行库一键修复:3分钟解决Windows软件启动失败的终极方案
Visual C运行库一键修复:3分钟解决Windows软件启动失败的终极方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经兴奋地双击一个游戏或专…...
ISE 14.7 最后的倔强:手把手教你给CPLD烧录程序(附JTAG连接避坑指南)
ISE 14.7 最后的倔强:手把手教你给CPLD烧录程序(附JTAG连接避坑指南) 在Vivado大行其道的今天,ISE 14.7这个"老古董"依然活跃在某些工程师的工作站上。这不是技术怀旧,而是实实在在的工程需求——当你面对一…...
构建高可靠后端架构:从分层设计到可观测性的工程实践
1. 项目概述:一个为现代应用打造的“钢铁脊梁” 最近在折腾一个前后端分离的项目,后端服务部署在云上,前端是Vue,中间还夹杂着几个微服务。部署上线那几天,我几乎没怎么合眼,不是数据库连接池爆了ÿ…...
3D高斯溅射优化:LiteGS框架加速训练与渲染
1. 项目概述 3D高斯溅射(3D Gaussian Splatting,简称3DGS)是近年来计算机视觉和图形学领域的一项突破性技术。它通过数百万个各向异性的3D高斯基元来表示场景,能够实现照片级的渲染效果,在自动驾驶、虚拟现实和数字孪生…...
如何提升co项目代码质量:ESLint规则与异步检查完整指南
如何提升co项目代码质量:ESLint规则与异步检查完整指南 【免费下载链接】co The ultimate generator based flow-control goodness for nodejs (supports thunks, promises, etc) 项目地址: https://gitcode.com/gh_mirrors/co/co co作为Node.js生态中基于生…...
实测Taotoken API调用延迟与稳定性在SpringBoot服务中的表现
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 实测Taotoken API调用延迟与稳定性在SpringBoot服务中的表现 在将大模型能力集成到后端微服务时,开发者不仅关注功能的…...
开源首发:DocCenter — 本地 HTML 工作台,治好 AI 时代的文档散落病
Tags:Python aiohttp 开源项目 AI工具 前端工程 全栈 工具分享 一、痛点:AI 时代的文档散落病 (对比传统文档管理 vs AI 生成文档的区别,说明为什么 VSCode/Notion 都不合适) 二、技术选型:为什么是单 Pyth…...
10个免费Illustrator脚本:让你的设计效率提升300%的终极工具集
10个免费Illustrator脚本:让你的设计效率提升300%的终极工具集 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 如果你经常使用Adobe Illustrator进行设计工作࿰…...
PHP文件上传绕过新思路:用.htaccess+GIF89a头绕过exif_imagetype检测的完整操作指南
突破文件上传限制的进阶技巧:.htaccess与GIF89a的协同利用 在Web应用安全领域,文件上传功能一直是攻防对抗的前沿阵地。当开发者采用exif_imagetype()等函数验证文件类型时,攻击者往往会寻找更隐蔽的绕过方式。本文将深入剖析如何通过.htacce…...
数据库安全与合规:保护你的数据资产
数据库安全与合规:保护你的数据资产 引言 数据库是企业的核心数据资产,数据库安全不仅关系到业务的正常运行,更关系到用户隐私和企业声誉。本文将从访问控制、数据加密、审计日志、备份恢复等多个维度,全面探讨数据库安全与合规的…...
