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

相关推荐
其木王·王子1 小时前
0. 渲染游戏画面
python·游戏·pygame
萧鼎2 小时前
【Python】轻松解析JSON与XML:Python标准库的json与xml模块
xml·python·json
JAMES费2 小时前
python机器人Agent编程——实现一个本地大模型和爬虫结合的手机号归属地天气查询Agent
爬虫·python·机器人
MinIO官方账号2 小时前
使用亚马逊 S3 连接器为 PyTorch 和 MinIO 创建地图式数据集
人工智能·pytorch·python
小菠萝09082 小时前
确定图像的熵和各向异性 Halcon entropy_gray 解析
人工智能·python·计算机视觉
夏天的遥遥漓曦3 小时前
蓝桥杯备考——算法
c语言·python·算法·蓝桥杯
AI原吾3 小时前
探索Python自动化新境界:Invoke库的神秘面纱
开发语言·python·自动化·invoke
兔兔爱学习兔兔爱学习3 小时前
leetcode21. Merge Two Sorted Lists
python·算法
2301_811212333 小时前
python数据结构操作与可视化的应用
数据结构·python·信息可视化·django·virtualenv·pygame·tornado
斯普信专业组3 小时前
Zookeeper运维秘籍:四字命令基础、详解及业务应用全解析
分布式·zookeeper