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

相关推荐
梅花141 天前
基于Django的博客系统
后端·python·django·毕业设计·博客·博客系统·毕设
ZVAyIVqt0UFji1 天前
Kafka 消费积压影响写入?试试 Pulsar
分布式·kafka
百***98811 天前
RabbitMQ 的介绍与使用
分布式·rabbitmq·ruby
跟着珅聪学java1 天前
Kafka 报错 No readable meta.properties files found解决方案
分布式·kafka
烤汉堡1 天前
Python入门到实战:网络请求与数据获取
python
rimoyee1 天前
[python探本] 内存数据存储机制
python
LiLiYuan.1 天前
Arrays类和List接口的关联
java·开发语言·windows·python
AI小云1 天前
【Numpy数据运算】Numpy速学手册
python·numpy
梦里不知身是客111 天前
kafka 消费者之分区分配策略
分布式·kafka
脸大是真的好~1 天前
尚硅谷 SpringCloud 01 分布式概念-工程创建-nacos安装-nacos服务注册与发现-远程调用-负载均衡注解版-配置中心-动态刷新-环境隔离
分布式·spring·spring cloud