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后消息并没有马上被移除,但该消息已经不会被消费了,当它到达队列顶端时会被移除。

相关推荐
BBB努力学习程序设计14 小时前
Python面向对象编程:从代码搬运工到架构师
python·pycharm
rising start15 小时前
五、python正则表达式
python·正则表达式
BBB努力学习程序设计15 小时前
Python错误处理艺术:从崩溃到优雅恢复的蜕变
python·pycharm
我叫黑大帅15 小时前
什么叫可迭代对象?为什么要用它?
前端·后端·python
Dillon Dong15 小时前
Django + uWSGI 部署至 Ubuntu 完整指南
python·ubuntu·django
k***825116 小时前
python爬虫——爬取全年天气数据并做可视化分析
开发语言·爬虫·python
new_dev16 小时前
Python网络爬虫从入门到实战
爬虫·python·媒体
2501_9411458516 小时前
Go语言高效爬虫开发实战:协程与并发请求代码解析
rabbitmq
深蓝电商API16 小时前
Scrapy + Scrapy-Redis 分布式爬虫集群部署(2025 最新版)
redis·分布式·scrapy
q***016516 小时前
Python爬虫完整代码拿走不谢
开发语言·爬虫·python