rabbitmq高级特性 TTL
概念

使用web页面创建ttl队列

填上参数即可快速创建ttl队列
代码实现ttl队列
同理我们在构建时给出对应的值即可
@Bean("bootQueue")
public Queue bootQueue(){
return QueueBuilder.durable(QUEUE_NAME).ttl(10000).build();
}
发送数据后 会发现10秒后消息自动被删除了
信息单独设置过期时间
rabbitmq为了性能 如果单独为信息设置了过期时间 那么只有当信息位于顶部要被取出时才会判断是否过期
实现也非常简单 代码如下:
@Test void send(){
//消息后处理对象,设置一些信息的参数信息
MessagePostProcessor processor = new MessagePostProcessor() {
@Override
public Message postProcessMessage(Message message) throws AmqpException {
message.getMessageProperties().setExpiration("5000");//设置过期时间
return message;
}
};
//将该对象也传进去
for (int i = 0; i < 10; i++) {
rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME,"boot.haha","message: "+i,processor);
}
}
这样就会为信息单独设置5秒的过期时间

浙公网安备 33010602011771号