当前位置: 首页 > news >正文

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使用延时队列

延时队列 在开发中&#xff0c;有时需要使用延时队列。 比如&#xff0c;订单15分钟内未支付自动取消。 jdk延时队列 如果使用 jdk自带的延时队列&#xff0c;那么服务器挂了或者重启时&#xff0c;延时队列里的数据就会失效&#xff0c;可用性比较差。 Redisson延时队列 …...

基于php 进行每半小时钉钉预警

前言 业务场景&#xff1a;监控当前业务当出现并发情况时技术人员可以可以及时处理 使用技术栈&#xff1a; laravelredis 半小时触发一次报警信息实现思路 1、xshell脚本 具体参数就不详细解释了&#xff0c;想要详细了解可以自行百度 curl -H "Content-Type:appl…...

5.Python-使用XMLHttpRequest对象来发送Ajax请求

题记 使用XMLHttpRequest对象来发送Ajax请求&#xff0c;以下是一个简单的实例和操作过程。 安装flask模块 pip install flask 安装mysql.connector模块 pip install mysql-connector-python 编写app.py文件 app.py文件如下&#xff1a; from flask import Flask, reque…...

八皇后问题的解析与实现

问题描述 八皇后问题是一个古老而又著名的问题。 时间退回到1848年,国际西洋棋棋手马克斯贝瑟尔提出了这样的一个问题: 在88格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。 如何找到这所有的…...

论文浅尝 | 深度神经网络的模型压缩

笔记整理&#xff1a;闵德海&#xff0c;东南大学硕士&#xff0c;研究方向为知识图谱 链接&#xff1a;https://arxiv.org/abs/1412.6550 动机 提高神经网络的深度通常可以提高网络性能&#xff0c;但它也使基于梯度的训练更加困难&#xff0c;因为更深的网络往往更加强的非线…...

进阶JAVA篇- DateTimeFormatter 类与 Period 类、Duration类的常用API(八)

目录 1.0 DateTimeFormatter 类的说明 1.1 如何创建格式化器的对象呢&#xff1f; 1.2 DateTimeFormatter 类中的 format&#xff08;LocalDateTime ldt&#xff09; 实例方法 2.0 Period 类的说明 2.1 Period 类中的 between(localDate1,localDate2) 静态方法来创建对象。 3.…...

1.1 Windows驱动开发:配置驱动开发环境

在进行驱动开发之前&#xff0c;您需要先安装适当的开发环境和工具。首先&#xff0c;您需要安装Windows驱动开发工具包&#xff08;WDK&#xff09;&#xff0c;这是一组驱动开发所需的工具、库、示例和文档。然后&#xff0c;您需要安装Visual Studio开发环境&#xff0c;以便…...

Jetpack:009-kotlin中的lambda、匿名函数和闭包

文章目录 1. 概念介绍2. 使用方法2.1 函数类型的变量2.2 高阶函数 3. 内容总结4.经验分享 我们在上一章回中介绍了Jetpack中Icon和Imamg相关的内容&#xff0c;本章回中主要介绍Kotlin中的 lambda、匿名函数和闭包。闲话休提&#xff0c;让我们一起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&#xff1a;数据库名&#xff0c;要备份的数据库名称 username&#xff1a;用户名&#xff0c;数据…...

干货:如何在前端统计用户访问来源?

在前端统计用户访问来源是一个常见的需求&#xff0c;通过获取访问来源信息&#xff0c;我们可以了解用户是通过直接访问、搜索引擎、外部链接等途径进入我们的网站或应用。下面是一个详细的介绍&#xff0c;包括方法和实现步骤。 一、获取HTTP Referer HTTP Referer是HTTP请…...

李宏毅生成式AI课程笔记(持续更新

01 ChatGPT在做的事情 02 预训练&#xff08;Pre-train&#xff09; ChatGPT G-Generative P-Pre-trained T-Transformer GPT3 ----> InstructGPT&#xff08;经过预训练的GPT3&#xff09; 生成式学习的两种策略 我们在使用ChatGPT的时候会注意到&#xff0c;网站上…...

nodejs+vue+elementui酒店客房服务系统mysql带商家

视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进行操作时能够正常。 简单的说 Node.js 就是运行在服务端的 JavaScript。 前端技术&#xff1a;nodejsvueel…...

【网络协议】聊聊网络分层

常用的网络协议 首先我们输入www.taobao.com&#xff0c;会先经过DNS进行域名解析&#xff0c;转换为59.82.122.115的公网IP地址。然后就会发起请求&#xff0c;一般来说非加密的使用http&#xff0c;加密的使用https。上面是在应用层做的处理&#xff0c;那么接下来就是到传输…...

[开源]基于Vue+ElementUI+G2Plot+Echarts的仪表盘设计器

一、开源项目简介 基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的仪表盘设计器&#xff0c;具备仪表盘目录管理、仪表盘设计、仪表盘预览能力&#xff0c;支持MySQL、Oracle、PostgreSQL、MSSQL、JSON等数据集接入&#xff0c;对于复杂数据处理还可以使用…...

html设置前端加载动画

主体思路参考&#xff1a; 前端实现页面加载动画_边城仔的博客-CSDN博客 JS图片显示与隐藏案例_js控制图片显示隐藏-CSDN博客 1、编写load.css /* 显示加载场景 */ .loadBackGround{position: absolute;top: 0px;text-align: center;width: 100%;height: 100vh;background-c…...

【git的使用方法】——上传文件到gitlab仓库

先进入到你克隆下来的仓库的目录里面 比如&#xff1a;我的仓库名字为zhuox 然后将需要上传推送的文件拷贝到你的克隆仓库下 这里的话我需要拷贝的项目是t3 输入命令ls&#xff0c;就可以查看该文件目录下的所有文件信息 然后输入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要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;vue要做权限管理该怎么做…...

1、验证1101序列(Moore)

题目要求&#xff1a; 用Moore型状态机验证1101序列。 题目描述&#xff1a; 用使用状态机验证1101序列&#xff0c;注意&#xff1a;允许重复子序列。如图 端口描述&#xff1a; module moore_1101(input clk,//时钟信号input clr,//reset复位信号&#xff0c;高电平有效in…...

3个场景解锁小爱音箱音乐自由:开源神器XiaoMusic的终极指南

3个场景解锁小爱音箱音乐自由&#xff1a;开源神器XiaoMusic的终极指南 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 还在为小爱音箱的音乐播放限制而烦恼吗&…...

Win11系统下Anaconda3-2022.10保姆级安装与避坑指南(附不勾选PATH的详细原因)

Win11系统下Anaconda3-2022.10深度安装指南与关键配置解析 在数据科学和机器学习领域&#xff0c;Anaconda已经成为Python环境管理的标准工具之一。对于Windows 11用户来说&#xff0c;正确安装和配置Anaconda是开启数据分析之旅的第一步。本文将深入探讨Anaconda3-2022.10版本…...

应对复杂流媒体生态:N_m3u8DL-RE跨平台下载引擎的智能解析方案

应对复杂流媒体生态&#xff1a;N_m3u8DL-RE跨平台下载引擎的智能解析方案 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8…...

Taotoken API Key安全管理最佳实践与审计日志查看

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken API Key安全管理最佳实践与审计日志查看 对于任何接入大模型服务的开发者而言&#xff0c;API Key 是访问权限的核心凭证…...

HEIF Utility终极指南:在Windows上免费打开和转换苹果HEIF照片的完整教程

HEIF Utility终极指南&#xff1a;在Windows上免费打开和转换苹果HEIF照片的完整教程 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility 还在为iPhone拍摄的照片在W…...

从协同过滤到深度学习:Spark机器学习实战三部曲

1. 协同过滤&#xff1a;Spark推荐系统的基石 推荐系统是机器学习最接地气的应用场景之一。我在电商平台做算法优化时&#xff0c;发现协同过滤(CF)始终是新手最容易上手的推荐算法。Spark MLlib提供了两种经典实现&#xff1a;基于物品的协同过滤(Item CF)和基于用户的协同过滤…...

智能体的核心能力到底是什么?看完彻底刷新认知

文章目录前言一、智能体的本质&#xff1a;从“回答问题”到“解决问题”的范式跃迁二、智能体的四大核心能力&#xff0c;少一个都是伪智能体2.1 自主规划能力&#xff1a;把复杂目标拆成可执行步骤2.2 工具调用与编排能力&#xff1a;按需组合工具&#xff0c;而不是只会调用…...

使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用taotoken后c语言项目调用大模型的延迟与稳定性实际体验 在开发一个需要集成大模型能力的C语言桌面应用时&#xff0c;我们面临…...

基于RK3568与CODESYS的工业边缘控制器:软PLC如何重塑自动化设备核心

1. 为什么工业自动化需要软PLC&#xff1f; 记得五年前我第一次接触传统PLC时&#xff0c;被它的价格吓了一跳。一台西门子S7-1200基础型号就要上万元&#xff0c;加上各种扩展模块轻松突破两万。更让我头疼的是&#xff0c;每次设备升级都要重新采购硬件&#xff0c;旧设备只能…...

收藏 | 从零开始学大模型:6个月完整开发路线图(附免费资源)

本文提供一份从Python基础到企业级大模型应用开发的6-8个月学习路线图&#xff0c;涵盖API调用、提示词工程、RAG知识库问答、Agent智能体开发及模型微调部署。结合近百份招聘需求及专家建议&#xff0c;适合初学者快速构建AI技能体系&#xff0c;附有前沿拓展方向与免费学习资…...