淘宝加盟网站建设,微网站建设哪家好,定州网站建设公司,php禁止ip访问网站目录一、TTL1.控制后台演示消息过期2.代码实现2.1 队列统一过期2.2 消息过期一、TTL
TTL 全称 Time To Live#xff08;存活时间/过期时间#xff09;。 当消息到达存活时间后#xff0c;还没有被消费#xff0c;会被自动清除。 RabbitMQ可以对消息设置过期时间#xff0…
目录一、TTL1.控制后台演示消息过期2.代码实现2.1 队列统一过期2.2 消息过期一、TTL
TTL 全称 Time To Live存活时间/过期时间。 当消息到达存活时间后还没有被消费会被自动清除。 RabbitMQ可以对消息设置过期时间也可以对整个队列Queue设置过期时间。
1.控制后台演示消息过期
① 修改管理后台界面增加队列 参数表示过期时间单位毫秒 10000表示10秒 ② 增加交换机 ③ 绑定队列 ④ 发送消息 Delivery mode2-Persistent表示需要进行持久化 ⑤ 查看消息可以看到消息但十秒之后消息自动消失因为我们设置了十秒消息过期
2.代码实现
2.1 队列统一过期
在队列后面添加.ttl(10000)为10s
import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;Configuration
public class RabbitMQConfig {public static final String EXCHANGE_NAME boot_topic_exchange2;public static final String QUEUE_NAME boot_queue666;// 1 交换机Bean(bootExchange)public Exchange bootExchange(){return ExchangeBuilder.topicExchange(EXCHANGE_NAME).durable(true).build();}//2.Queue 队列Bean(bootQueue)public Queue bootQueue(){return QueueBuilder.durable(QUEUE_NAME).ttl(10000).build();}//3. 队列和交互机绑定关系 Binding/*1. 知道哪个队列2. 知道哪个交换机3. routing keynoargs()表示不指定参数*/Beanpublic Binding bindQueueExchange(Qualifier(bootQueue) Queue queue,Qualifier(bootExchange) Exchange exchange){return BindingBuilder.bind(queue).to(exchange).with(confirm).noargs();}
}启动发送 Testpublic void testConfirm() {//3. 发送消息for (int i 0; i 10; i) {rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME, confirm, 消息);//成功}}查看控制台,发现有10条消息,十秒之后自动过期
2.2 消息过期 /*** TTL过期时间* 1. 队列统一过期* 2. 消息单独过期* 如果设置了消息的过期时间,也设置了队列的过期时间,它以时间短的为准。*/Testpublic void testMessageTtl() {// 消息后处理对象,设置一些消息的参数信息MessagePostProcessor messagePostProcessor new MessagePostProcessor() {Overridepublic Message postProcessMessage(Message message) throws AmqpException {//1.设置message的信息// 第二个方法消息的过期时间 ,5秒之后过期message.getMessageProperties().setExpiration(5000);//2.返回该消息return message;}};//消息单独过期rabbitTemplate.convertAndSend(test_exchange_ttl,ttl.hehe,message ttl....,messagePostProcessor);}运行程序,查看后台管理系统