RabbitMQ(高级特性)设置单条消息存活时间-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
设置单条消息存活时间
@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 消息过期后并不会马上移除消息只有消息消费到队列顶端时才会移除该消息。
第二条测试
@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后消息并没有马上被移除但该消息已经不会被消费了当它到达队列顶端时会被移除。
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |