首页 > 其他 > 详细

rabbitmq-高级(TTL过期时间)

时间:2021-06-14 17:41:00      阅读:17      评论:0      收藏:0      [点我收藏+]
  • 在生产者建TTL配置类
@Configuration
public class TTLRabbitmqConfiguration {
    //声明交换机
    @Bean
    public DirectExchange ttlDirectExchange(){
        return new DirectExchange("ttl_order_exchange",true,false);
    }

    //声明队列
    @Bean
    public Queue directTTLQueue(){
        Map<String,Object> map = new HashMap<>();
		//这里一定是int,设置过期时间5s,5s后自动移除消息
        map.put("x-message-ttl",5000);
        return new Queue("ttl.direct.queue",true,false,false,map);
    }

    //完成交换机和队列绑定
    @Bean
    public Binding directTTLBinding(){
        return BindingBuilder.bind(directTTLQueue()).to(ttlDirectExchange()).with("ttl");
    }
}
  • 测试类运行
@Test
void contextLoads3() {
   orderService.makeOrderTTL("1","1",12);
}

技术分享图片

  • 打开rabbitmq
    可以看到ttl的队列已经生成,点进去队列可以看到Details中关于ttl过期时间的设置,然后再5s之后,该条消息自动消失
    技术分享图片
    技术分享图片
    技术分享图片

rabbitmq-高级(TTL过期时间)

原文:https://www.cnblogs.com/kaka-qiqi/p/14881948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!