RabbitMQ(高级特性)设置单条消息存活时间

设置单条消息存活时间

java 复制代码
@Test
public void testSendMessage() {
  //设置消息属性
  MessageProperties messageProperties = new MessageProperties();
  //设置存活时间
  messageProperties.setExpiration("10000");
  // 创建消息对象
  Message message = new Message("send message...".getBytes(StandardCharsets.UTF_8), messageProperties);
  // 发送消息
  rabbitTemplate.convertAndSend("my_topic_exchange", "my_routing", message);
}

注意:

1 如果设置了单条消息的存活时间,也设置了队列的存活时间,以时间短的为准。

2 消息过期后,并不会马上移除消息,只有消息消费到队列顶端时,才会移除该消息。

第二条测试:

java 复制代码
@Test
public void testSendMessage2() {
  for (int i = 0; i < 10; i++) {
    if (i == 5) {
      // 1.创建消息属性
      MessageProperties messageProperties = new MessageProperties();
      // 2.设置存活时间
      messageProperties.setExpiration("10000");
      // 3.创建消息对象
      Message message = new Message(("send message..." + i).getBytes(), messageProperties);
      // 4.发送消息
      rabbitTemplate.convertAndSend("my_topic_exchange", "my_routing", message);
     } else {
      rabbitTemplate.convertAndSend("my_topic_exchange", "my_routing", "send message..." + i);
     }
   }
}

在以上案例中,i=5的消息才有过期时间,10s后消息并没有马上被移除,但该消息已经不会被消费了,当它到达队列顶端时会被移除。

相关推荐
SCBAiotAigc1 分钟前
2026.2.25:conda与uv并存时,如何取消base激活
人工智能·python·conda·uv
wanderful_2 分钟前
Django 模拟支付功能开发:踩坑与闭环实现
后端·python·django
YouGIS顽石工坊5 分钟前
坐标转换服务私有化部署指南 - 源码与Docker两种方案
python·restful·docker镜像·python源码·pyproj·坐标转换服务·高斯克吕格投影
tony3658 分钟前
pytorch分布式训练解释
人工智能·pytorch·分布式
李可以量化10 分钟前
【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据
开发语言·python·金融·qmt·miniqmt·量化 qmt ptrade
2501_9333295521 分钟前
技术深度拆解:Infoseek媒体发布系统的分布式架构与自动化实现
分布式·架构·媒体
迷之程序员22 分钟前
llama-cpp-python用法,模型加载gpu踩坑全记录
开发语言·python·llama
nimadan129 小时前
**AI漫剧软件2025推荐,解锁高性价比创意制作新体验**
人工智能·python
yunhuibin12 小时前
GoogLeNet学习
人工智能·python·深度学习·神经网络·学习
易辰君12 小时前
【Python爬虫实战】正则:中文匹配与贪婪非贪婪模式详解
开发语言·爬虫·python