redisson -- 延迟队列RDelayedQueue
1.maven配置
<!-- 用于管理起步工程的依赖管理 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version><relativePath/> </parent>
<dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.2</version></dependency><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.10.6</version></dependency>
</dependencies>
2.yml配置
server:port: 9007servlet:context-path: /spring:redis:# 超时时间timeout: 10000ms# 服务器地址host: 127.0.0.1# 服务器端口port: 6379# 数据库database: 0# 密码password: 123456lettuce:pool:# 最大连接数,默认8max-active: 1024# 最大连接阻塞等待时间,默认-1max-wait: 10000ms# 最大空闲连接max-idle: 200# 最小空闲连接min-idle: 5
3.config
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.redisson.config.SingleServerConfig;
import org.springframework.context.annotation.Bean;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;public class RedissonConfig {@Bean(destroyMethod = "shutdown")public RedissonClient redissonClient(RedisProperties redisProperties){Config config = new Config();SingleServerConfig singleServerConfig = config.useSingleServer();singleServerConfig.setAddress("redis://" + redisProperties.getHost() + ":" + redisProperties.getPort());singleServerConfig.setPassword(redisProperties.getPassword());singleServerConfig.setKeepAlive(true);// 根据config创建出RedissonClient实例RedissonClient redissonClient = Redisson.create(config);return redissonClient;}}
4.service
public void delayed() throws InterruptedException {// 阻塞队列:RBlockingDeque的实现类为:new RedissonBlockingDequeRBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque("delayedQueue");// 获取延迟队列RDelayedQueue<String> delayedQueue = redissonClient.getDelayedQueue(blockingDeque);System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "添加任务到延时队列里面");// 添加延迟任务delayedQueue.offer( "task1第一个任务", 6, TimeUnit.SECONDS);delayedQueue.offer( "task2第二个任务", 4, TimeUnit.SECONDS);System.out.println("--------------------Begin");// 通过 take 方法等待并获取到期的任务while (true) {String task = blockingDeque.take();System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "延时队列收到:" + task);}}
5.结果

相关文章:
redisson -- 延迟队列RDelayedQueue
1.maven配置 <!-- 用于管理起步工程的依赖管理 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.11</version><relativePath/> </parent…...
Flex弹性盒子布局案例(认识弹性布局)
一、导航菜单 此示例创建了一个水平导航菜单,其中链接在 Flex 容器中等距分布。 HTML结构: <nav class"nav-menu"><a href"#">Home</a><a href"#">About</a><a href"#">…...
【ros2】ros1和ros2可以同时在一台机器上运行吗
可以,ROS 1 和 ROS 2 是两个不同版本的 Robot Operating System (ROS),它们分别有着各自的架构、消息传递机制以及配套工具集。尽管存在这些差异,ROS 1 和 ROS 2 可以在同一台 Ubuntu 系统上共存并独立运行。以下是一些关键点来说明如何实现这…...
PMSM MATLAB
// s-function搭建变参数PMSM模型 ///...
笔记本电脑上的聊天机器人: 在英特尔 Meteor Lake 上运行 Phi-2
对应于其强大的能力,大语言模型 (LLM) 需要强大的算力支撑,而个人计算机上很难满足这一需求。因此,我们别无选择,只能将它们部署至由本地或云端托管的性能强大的定制 AI 服务器上。 为何需要将 LLM 推理本地化 如果我们可以在典配…...
【Web】陇原战“疫“2021网络安全大赛 题解
目录 CheckIN eaaasyphp EasyJaba CheckIN 拿到附件,贴出关键代码 func getController(c *gin.Context) {cmd : exec.Command("/bin/wget", c.QueryArray("argv")[1:]...)err : cmd.Run()if err ! nil {fmt.Println("error: ", …...
010Node.js自定义模块通过exports的使用,两种暴露的方法及区别(二)
module/request.js var obj{get:function(){console.log(从服务器获取数据);},post:function(){console.log(提交数据);} }exports.xxxxobj;//方法一 { xxxx: { get: [Function: get], post: [Function: post] } }//module.exportsobj;//方法二 //{ get: [Function: g…...
【CVE-2010-2883】进行钓鱼攻击的研究
最近作业中研究APT攻击,了解到2011年前后披露的LURID-APT,其中敌手利用了各种版本的文件查看器的漏洞实现攻击。CVE-2010-2883就是其中被利用的一个adobe reader的漏洞。特此复现,更好的研究和防范APT攻击。 本文仅仅是对相关漏洞利用的学习…...
【Python】如何在Ubuntu上设置Python脚本开机自启
你不知道我为什么狠下心 盘旋在你看不见的高空里 多的是 你不知道的事 蝴蝶眨几次眼睛 才学会飞行 夜空洒满了星星 但几颗会落地 我飞行 但你坠落之际 很靠近 还听见呼吸 对不起 我却没捉紧你 🎵 王力宏《你不知道的事》 前置要求 确保你的Ub…...
计算机视觉——OpenCV Python基于颜色识别的目标检测
1. 计算机视觉中的颜色空间 颜色空间在计算机视觉领域的应用非常广泛,它们在图像和视频处理、物体检测等任务中扮演着重要角色。颜色空间的主要作用是将颜色以数值形式表示出来,这样计算机算法就能够对其进行处理和分析。不同的颜色空间有着不同的特点和…...
2024中国内燃机展-北京汽车发动机零部件展
2024第二十三届中国国际内燃机与零部件展览会 由中国内燃机工业协会主办、中国机床专用技术设备有限公司、汽车工艺装备成套开发集团协办的2024中国国际内燃机及动力装备博览会(简称“动博会”)将于2024年10月11日-13日在亦创国际会展中心隆重举办。本届…...
【iOS】——SDWebImage源码学习
文章目录 一、SDWebIamge简介二、SDWebImage的调用流程SDWebImage源码分析1.UIImageViewWebCache层2.UIViewWebCache层3.SDWebManager层4.SDWebCache层5.SDWebImageDownloader层 一、SDWebIamge简介 SDWebImage是iOS中提供图片加载的第三方库,可以给UIKit框架中的控…...
树和二叉树(一)
一、树 非线性数据结构,在实际场景中,存在一对多,多对多的情况。 树( tree)是n (n>0)个节点的有限集。当n0时,称为空树。 在任意一个非空树中,有如下特点。 1.有且仅有一个特定的称为根的节点…...
RAID 磁盘阵列及RAID配置实战
目录 一.RAID磁盘阵列介绍 二.常用的RAID磁盘阵列的介绍 1.RAID 0 (条带化存储) 2.RAID 1(镜像存储) 3.RAID 5 4.RAID 6 5.RAID 10(先做镜像,再做条带) 6.RAID 01 (先做条带…...
listpack
目录 为什么有listpack? listpack结构 listpack的节点entry 长度length encoding编码方式 listpack的API 1.创建listpack 2.遍历操作 正向遍历 反向遍历 3.查找元素 4.插入/替换/删除元素 总结 为什么有listpack? ziplist是存储在连续内存空间,节省…...
Web3与社会契约:去中心化治理的新模式
在数字化时代,技术不断为我们提供新的可能性,而Web3技术作为一种基于区块链的创新,正在引领着互联网的下一波变革。它不仅改变了我们的经济模式和商业逻辑,还对社会契约和权力结构提出了全新的挑战和思考。本文将深入探讨Web3的基…...
实体类List重复校验
如果实体类有多个属性,并且你希望根据所有属性的组合来进行重复校验,你可以考虑以下几种方法: 使用集合存储已经出现过的实体对象: 将每个实体对象放入一个 Set 中进行重复校验。在 Set 中元素的比较可以使用自定义的 equals 方法…...
loadash常用的函数方法
Lodash是一个JavaScript实用工具库,提供了很多常用的函数方法来简化开发过程。以下是一些常用的Lodash函数方法: _.map(array, iteratee):对数组中的每个元素应用一个函数,并返回结果数组。_.filter(collection, predicate)&…...
【零基础入门TypeScript】模块
目录 内部模块 内部模块语法(旧) 命名空间语法(新) 两种情况下生成的 JavaScript 是相同的 外部模块 选择模块加载器 定义外部模块 句法 例子 文件:IShape.js 文件:Circle.js 文件:…...
Scala 之数组
可变数组与不可变数组 import scala.collection.mutable.ArrayBuffer// 不可变数组。 长度不可变,但是元素的值可变 object Demo1 {def main(args: Array[String]): Unit {// 不可变数组定义方式// 未初始化有默认值 Int > 0val arr1 : Array[Int] new Arr…...
microeco:微生物组学分析工具的终极指南,让数据分析变得简单快速
microeco:微生物组学分析工具的终极指南,让数据分析变得简单快速 【免费下载链接】microeco An R package for downstream data analysis of microbiome omics data 项目地址: https://gitcode.com/gh_mirrors/mi/microeco 面对海量的微生物组学数…...
EdgeRemover技术深度解析:Windows系统级浏览器管理解决方案
EdgeRemover技术深度解析:Windows系统级浏览器管理解决方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …...
veil:专为AI智能体设计的无头浏览器自动化工具
1. 项目概述:为AI智能体打造的“隐形之手”如果你正在构建或使用AI智能体,并且希望它能像真人一样操作浏览器——登录社交平台、发布内容、浏览网页、点击按钮——那么你很可能已经感受到了传统自动化工具的掣肘。Selenium、Puppeteer这些工具很棒&#…...
毫米波ISAC系统设计与FPGA实现关键技术
1. 毫米波ISAC系统设计背景与核心挑战在车联网和自动驾驶场景中,毫米波技术因其大带宽特性同时满足了高精度环境感知与高速数据传输的双重需求。传统方案采用雷达与通信系统独立部署,导致硬件资源浪费和频谱效率低下。我们基于IEEE 802.11ad标准设计的雷…...
免费开源!3分钟让Mac鼠标滚动告别卡顿的终极平滑方案
免费开源!3分钟让Mac鼠标滚动告别卡顿的终极平滑方案 【免费下载链接】Mos 一个用于在 macOS 上平滑你的鼠标滚动效果或单独设置滚动方向的小工具, 让你的滚轮爽如触控板 | A lightweight tool used to smooth scrolling and set scroll direction independently fo…...
AI工作流引擎:基于DAG与智能体的自动化任务编排实践
1. 项目概述:当AI遇上工作流,一场效率革命的开端 最近在GitHub上看到一个挺有意思的项目,叫 DahnM20/ai-flow 。光看名字,你可能会觉得这又是一个“AI自动化”的玩具,但仔细研究其源码和设计理念后,我发现…...
便民服务渠道智慧整合融通方案
便民服务渠道智慧整合融通方案 目录 第1章项目概述 7 1.1项目背景 7 1.2项目建设目标 7 1.2.1总体目标 8 1.2.2具体目标 8 1.3项目建设范围 9 1.3.1渠道整合范围 9 1.3.2业务覆盖范围 10 1.3.3系统建设范围 10 1.4项目建设意义 11 1.4.1对群众的意义 11 1.4.2对政府的意义 11 …...
别再只用if-else了!用Simulink Relay模块给你的控制逻辑加个‘缓冲带’(附C代码生成分析)
别再只用if-else了!用Simulink Relay模块给你的控制逻辑加个‘缓冲带’(附C代码生成分析) 在嵌入式控制系统的开发中,我们常常需要处理各种阈值判断和状态切换。传统的if-else结构虽然简单直接,但在实际应用中往往会导…...
Win10/Win11更新后飞行堡垒风扇快捷键失效?手把手教你找回丢失的FN+F5控制(附各型号解决方案对照表)
Win10/Win11更新后飞行堡垒风扇快捷键失效?深度修复指南与全型号适配方案 每次Windows大版本更新后,总有些硬件功能像变魔术一样消失——比如飞行堡垒系列笔记本的风扇控制快捷键FNF5。这背后其实是微软系统更新机制与厂商驱动之间的微妙博弈。作为从飞…...
Cursor编辑器集成OpenAPI Agent:让AI编程助手具备真实API调用能力
1. 项目概述:当你的代码编辑器学会“思考”最近在开发者社区里,一个名为neordinary/cursor-openapi-agent的项目引起了我的注意。乍一看,这名字有点长,但拆解一下就能明白它的野心:cursor是那款风头正劲的、集成了AI能…...
