给队列设置过期时间,到达时间之后,队列中的所有消息都会被移除
代码实现
@Bean("topic_queue2")
public Queue createQueue2(){
// .ttl()设置队列的过期时间为10秒
return QueueBuilder.durable(QUEUE2_NAME).ttl(10000).build();
}
十秒前
十秒后
消息过期后只有在队列顶端才会被立即移除,不在顶端时,不会立即移除,如果同时设置,以时间短的为准
代码实现
@Test
public void testTopicsSend(){
MessageProperties messageProperties = new MessageProperties();
messageProperties.setExpiration("10000"); // 设置过期时间10秒
Message message = new Message("hello rabbitmq".getBytes(), messageProperties);
rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME, "log.warning", message);
}
十秒前
十秒后


![消息队列 RabbitMQ[九] SpringBoot 设置消息过期时间TTL 消息队列 RabbitMQ[九] SpringBoot 设置消息过期时间TTL](http://www.mshxw.com/aiimages/31/859704.png)
