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

RabbitMQ中TTL

目录

  • 一、TTL
    • 1.控制后台演示消息过期
    • 2.代码实现
      • 2.1 队列统一过期
      • 2.2 消息过期

一、TTL

TTL 全称 Time To Live(存活时间/过期时间)。
当消息到达存活时间后,还没有被消费,会被自动清除。
RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间。
在这里插入图片描述

1.控制后台演示消息过期

① 修改管理后台界面,增加队列
参数:表示过期时间,单位毫秒 ,10000表示10秒
在这里插入图片描述
② 增加交换机
在这里插入图片描述
③ 绑定队列
在这里插入图片描述
④ 发送消息
Delivery mode:2-Persistent表示需要进行持久化
在这里插入图片描述
⑤ 查看消息,可以看到消息,但十秒之后,消息自动消失,因为我们设置了十秒消息过期
在这里插入图片描述

2.代码实现

2.1 队列统一过期

在队列后面添加.ttl(10000)为10s

import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitMQConfig {public static final String EXCHANGE_NAME = "boot_topic_exchange2";public static final String QUEUE_NAME = "boot_queue666";// 1 交换机@Bean("bootExchange")public Exchange bootExchange(){return ExchangeBuilder.topicExchange(EXCHANGE_NAME).durable(true).build();}//2.Queue 队列@Bean("bootQueue")public Queue bootQueue(){return QueueBuilder.durable(QUEUE_NAME).ttl(10000).build();}//3. 队列和交互机绑定关系 Binding/*1. 知道哪个队列2. 知道哪个交换机3. routing keynoargs():表示不指定参数*/@Beanpublic Binding bindQueueExchange(@Qualifier("bootQueue") Queue queue,@Qualifier("bootExchange") Exchange exchange){return BindingBuilder.bind(queue).to(exchange).with("confirm").noargs();}
}

启动发送

    @Testpublic void testConfirm() {//3. 发送消息for (int i = 0; i < 10; i++) {rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME, "confirm", "消息");//成功}}

查看控制台,发现有10条消息,十秒之后自动过期
在这里插入图片描述

2.2 消息过期

    /*** TTL:过期时间*  1. 队列统一过期*  2. 消息单独过期* 如果设置了消息的过期时间,也设置了队列的过期时间,它以时间短的为准。*/@Testpublic void testMessageTtl() {// 消息后处理对象,设置一些消息的参数信息MessagePostProcessor messagePostProcessor = new MessagePostProcessor() {@Overridepublic Message postProcessMessage(Message message) throws AmqpException {//1.设置message的信息// 第二个方法:消息的过期时间 ,5秒之后过期message.getMessageProperties().setExpiration("5000");//2.返回该消息return message;}};//消息单独过期rabbitTemplate.convertAndSend("test_exchange_ttl","ttl.hehe","message ttl....",messagePostProcessor);}

运行程序,查看后台管理系统
在这里插入图片描述

相关文章:

RabbitMQ中TTL

目录一、TTL1.控制后台演示消息过期2.代码实现2.1 队列统一过期2.2 消息过期一、TTL TTL 全称 Time To Live&#xff08;存活时间/过期时间&#xff09;。 当消息到达存活时间后&#xff0c;还没有被消费&#xff0c;会被自动清除。 RabbitMQ可以对消息设置过期时间&#xff0…...

Ceres简介及示例(4)Curve Fitting(曲线拟合)

文章目录1、Curve Fitting1.1、残差定义1.2、 Problem问题构造1.3、完整代码1.4、运行结果2、Robust Curve Fitting1、Curve Fitting 到目前为止&#xff0c;我们看到的示例都是没有数据的简单优化问题。最小二乘和非线性最小二乘分析的原始目的是对数据进行曲线拟合。 以一个…...

音质最好的骨传导蓝牙耳机有哪些,推荐几款不错的骨传导耳机

​骨传导耳机也称为“不入耳式”耳机&#xff0c;是一种通过颅骨、骨迷路、内耳淋巴液和听神经之间的信号传导&#xff0c;来达到听力保护目的的一种技术。由于它可以开放双耳&#xff0c;所以在跑步、骑行等运动时使用十分安全&#xff0c;可以避免外界的干扰。这种耳机在佩戴…...

计算机操作系统安全

操作系统安全是计算机系统安全的重要组成部分&#xff0c;目的是保护操作系统的机密性、完整性和可用性。在当前的网络环境下&#xff0c;操作系统面临着许多威胁&#xff0c;如病毒、木马、蠕虫、黑客攻击等等。为了保护操作系统的安全&#xff0c;需要采取各种措施来防范这些…...

超详细从入门到精通,pytest自动化测试框架实战教程-用例标记/执行(三)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 pytest可以通过标记…...

Java SE 基础(5) Java 环境的搭建

Java 虚拟机——JVM JVM &#xff08;Java Virtual Machine &#xff09;&#xff1a;Java虚拟机&#xff0c;简称JVM&#xff0c;是运行所有Java程序的假想计算机&#xff0c;是Java程序的运行环境&#xff0c;是Java 最具吸引力的特性之一。我们编写的Java代码&#xff0c;都…...

银行数字化转型导师坚鹏:银行对公客户数字化场景营销案例萃取

银行对公客户数字化场景营销案例萃取与行动落地课程背景&#xff1a; 很多银行存在以下问题&#xff1a;不清楚银行数字化营销与场景营销内涵&#xff1f;不知道如何开展对公客户数字化营销工作&#xff1f;不知道对公业务数字化场景营销成功案例&#xff1f; 学员收获&a…...

get和post的区别

1.用途上 get请求用来向服务器获取资源&#xff1b; post请求用来向服务器提交数据&#xff1b; 2.表单提交方式上 get请求直接将表单数据拼接到URL上&#xff0c;多个参数之间通过&符号连接&#xff1b; post请求将表单数据放到请求头或者请求体中&#xff1b; 3.传…...

Java调用Oracle存储过程

文章目录 Java调用Oracle存储过程Java调用Oracle存储过程 使用Java实现存储过程的步骤: 1、数据表、存储过程【已完成】 2、引入依赖包、数据源配置 3、Java实现【已完成】 – Oracle 创建数据表 CREATE TABLE STUDENT ( ID NUMBER (20) NOT NULL ENABLE PRIMARY KEY, NAME V…...

ubuntu如何设置qt环境变量

Qt 是一个1991年由Qt Company开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序&#xff0c;也可用于开发非GUI程序&#xff0c;比如控制台工具和服务器。Qt是面向对象的框架&#xff0c;使用特殊的代码生成扩展&#xff08;称为元对象编译器(Meta Object Compi…...

高管对谈|揭秘 NFT 技术背后的研发方法论

有人说&#xff0c;元宇宙是未来&#xff0c;NFT 则是通往这个可能的未来的数字通行证。 经过一度热炒之后&#xff0c;NFT 逐渐回归理性的「大浪淘沙」轨迹。NXTF_&#xff08;廿四未来&#xff09;正是一家将 NFT 向实体经济靠拢并与之结合的公司。 NXTF_利用区块链技术&am…...

是面试官放水,还是企业实在是缺人?这都没挂,字节原来这么容易进...

“字节是大企业&#xff0c;是不是很难进去啊&#xff1f;”“在字节做软件测试&#xff0c;能得到很好的发展吗&#xff1f;一进去就有9.5K&#xff0c;其实也没有想的那么难”直到现在&#xff0c;心情都还是无比激动&#xff01; 本人211非科班&#xff0c;之前在字节和腾讯…...

JVM 本地方法栈

本地方法栈的作用 Java虚拟机栈于管理Java方法的调用&#xff0c;而本地方法栈用于管理本地方法的调用。本地方法栈&#xff0c;也是线程私有的。允许被实现成固定或者是可动态扩展的内存大小&#xff08;在内存溢出方面和虚拟机栈相同&#xff09; 如果线程请求分配的栈容量超…...

GPT-4老板:AI可能会杀死人类,已经出现我们无法解释的推理能力

来源: 量子位 微信号&#xff1a;QbitAI “AI确实可能杀死人类。” 这话并非危言耸听&#xff0c;而是OpenAI CEO奥特曼的最新观点。 而这番观点&#xff0c;是奥特曼在与MIT研究科学家Lex Fridman长达2小时的对话中透露。 不仅如此&#xff0c;奥特曼谈及了近期围绕ChatGPT…...

弹性盒布局

系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录弹性盒模型&#xff08;FlexibleBox 或 flexbox&#xff09;什么是弹性盒&#xff1f;基本配置项给父元素添加给子元素添加弹性盒案例滚动条青蛙网页练习旧的弹性盒display:box 属性浏览器的兼…...

第13章_事务基础知识

第13章_事务基础知识 &#x1f3e0;个人主页&#xff1a;shark-Gao &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是shark-Gao&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f389;目前状况&#xff1a;23届毕业生&#xff0c;目前…...

LeetCode笔记:Biweekly Contest 101

LeetCode笔记&#xff1a;Biweekly Contest 101 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 1. 解题思路2. 代码实现 比赛链接&#xff1a;https://leetcode.com/contest/biweekly-contest-101/ 1. 题…...

new和malloc两个函数详细实现与原理分析

1.申请的内存所在位置 new操作符从自由存储区&#xff08;free store&#xff09;上为对象动态分配内存空间&#xff0c;而malloc函数从堆上动态分配内存。自由存储区是C基于new操作符的一个抽象概念&#xff0c;凡是通过new操作符进行内存申请&#xff0c;该内存即为自由存储…...

[ROC-RK3568-PC] [Firefly-Android] 10min带你了解LCD的使用

&#x1f347; 博主主页&#xff1a; 【Systemcall小酒屋】&#x1f347; 博主追寻&#xff1a;热衷于用简单的案例讲述复杂的技术&#xff0c;“假传万卷书&#xff0c;真传一案例”&#xff0c;这是林群院士说过的一句话&#xff0c;另外“成就是最好的老师”&#xff0c;技术…...

【redis】redis分布式锁

目录一、为什么需要分布式锁二、分布式锁的实现方案三、redis分布式锁3.1 简单实现3.2 成熟的实现一、为什么需要分布式锁 1.在java单机服务中&#xff0c;jvm内部有一个全局的锁监视器&#xff0c;只有一个线程能获取到锁&#xff0c;可以实现线程之间的互斥 2.当有多个java服…...

DocHub文库系统完整指南:10分钟快速搭建百度文库式开源平台

DocHub文库系统完整指南&#xff1a;10分钟快速搭建百度文库式开源平台 【免费下载链接】DocHub 参考百度文库&#xff0c;使用Beego&#xff08;Golang&#xff09;开发的开源文库系统 项目地址: https://gitcode.com/gh_mirrors/do/DocHub &#x1f680; 快速开始&…...

计算机专业四类毕业生就业全景对比:数据背后的残酷真相与报考抉择

数据来源&#xff1a;麦可思研究院《2025中国本科生就业报告》、教育部《2025年全国普通高校毕业生就业质量年度报告》、工信部《2025网络安全产业人才发展报告》、牛客Moka《2025春季校园招聘白皮书》、代码随想录星球薪资报告、知乎/B站等平台校招实况、CSDN/虎嗅/21经济网等…...

新手零基础入门:借助快马AI生成带注释的微信小程序示例代码

作为一个刚接触微信小程序开发的新手&#xff0c;我最近在InsCode(快马)平台上尝试了一个特别适合零基础学习的实践项目。这个平台最让我惊喜的是&#xff0c;只需要用自然语言描述需求&#xff0c;就能快速生成带详细注释的完整代码&#xff0c;这对理解小程序开发流程帮助很大…...

Java编程避坑指南:九大类常见陷阱与解决方案,助你写出高质量代码

文章目录 基础类 类、继承与内存 继承特性与注意事项 内存管理 现代 Java 特性 记录类与密封类常见陷阱 集合与遍历 相等性约定 集合常见陷阱 并发与同步 并发 异常处理 泛型与类型擦除 泛型陷阱 泛型与类型擦除 泛型陷阱 JVM、垃圾回收与模块系统 JVM/GC 常见陷阱 模块系统(J…...

别再只用L2损失了!手把手教你用PyTorch实现MS-SSIM+L1混合损失,图像修复效果大提升

超越L1/L2&#xff1a;用MS-SSIM混合损失打造专业级图像修复模型 当你在深夜调试一个图像超分辨率模型时&#xff0c;屏幕上的结果让你皱起了眉头——那些应该清晰锐利的边缘却像被水浸湿的水彩画一样模糊不清&#xff0c;而平坦的天空区域则布满了令人不快的颗粒状伪影。这可能…...

【院士、高层次专家齐聚 | 中南大学与布鲁内尔大学联合主办 | JPCS出版,EI , Scopus检索】第五届轻量化材料与工程结构国际会议(LIMAS 2026)

2026年第五届轻量化材料与工程结构国际会议&#xff08;LIMAS 2026&#xff09; 2026 5th International Conference on Lightweight Materials & Engineering Structures 2026年5月15-17日 &#xff0c;中国长沙 大会官网&#xff1a;www.iclimas.net【参会投稿】 截稿…...

佳维视工业嵌入式显示器在全电脑络筒机中的应用

佳维视工业嵌入式显示器凭借其高可靠性、环境适应性和功能集成性&#xff0c;可在全电脑络筒机的纱线张力控制、清纱监测、自动化操作、数据集成及远程运维等核心环节发挥关键作用&#xff0c;有效提升设备运行的稳定性、纱线加工质量及生产效率。具体应用如下&#xff1a;一、…...

液态神经网络在医疗诊断中的落地案例:如何用LNNs处理动态心电图数据

液态神经网络在医疗诊断中的落地案例&#xff1a;如何用LNNs处理动态心电图数据 当心电图仪器的电极贴片接触患者皮肤的瞬间&#xff0c;那些起伏的波形不仅是心脏跳动的印记&#xff0c;更是一组充满噪声的复杂时间序列数据。传统深度学习模型在处理这类动态生理信号时&#x…...

提升 10 倍的学习效率,这款浏览器必装的AI插件为什么火了?

花了3 周时间写了一个浏览器插件&#xff0c;一个月陆陆续续下载量破 1000 啦 安装链接 为什么要做这个项目&#xff1f; 一开始我入门学习 langchain 大模型agent开发&#xff0c;在之前我不懂的问题需要在 google 上搜索非常多的资料 融会贯通以后才能得到答案&#xff0…...

HDMI数据的接收发送实验(八)

一、 概述 上一章节创建hex文件写入EDID编码&#xff0c;接下来我们需要把ROM中的数据通过IIC协议传输到HDMI中&#xff0c;为了能够更方便观察具体时序&#xff0c;我们首先模拟主机发送的IIC请求&#xff0c;这样可以根据仿真来观察IIC的传输过程。 二、模拟主机发送IIC时序 …...