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

相关推荐
2501_9411437312 分钟前
数字化转型与云计算:未来企业发展的关键驱动力
rabbitmq
2501_9411467025 分钟前
从边缘计算到云计算:未来数字化架构的演变与挑战
rabbitmq
Predestination王瀞潞28 分钟前
Windows环境下Pytorch的配置
人工智能·pytorch·python
2501_9411429331 分钟前
物联网与边缘计算在高并发互联网系统中的架构优化与工程实践经验分享
rabbitmq
二川bro1 小时前
特征工程完全手册:2025 Python实战技巧
开发语言·python
2501_941142931 小时前
网络安全与高并发防护架构在互联网系统中的设计优化与工程实践经验分享
rabbitmq
2501_941143731 小时前
基于 Node.js 与 TypeScript 构建高并发微服务与实时协作系统实践分享
rabbitmq
2501_941881401 小时前
分布式数据库水平扩展与高可用架构在互联网大规模业务系统优化实践经验分享总结
rabbitmq
用户2345267009822 小时前
Python实现异步任务队列深度好文
后端·python
夫唯不争,故无尤也2 小时前
PyTorch 的维度变形一站式入门
人工智能·pytorch·python