第八章: TTL(Time To Live)

  • TTL 全称 Time To Live(存活时间/过期时间)
  • 当消息到达存活时间后,还没有被消费,会被自动清除
  • RabbitMQ可以对消息设置过期时间,也可以对整个队列(Queue)设置过期时间


    ttl

队列过期

    @Bean("ttlQueue")
    public Queue ttlQueue() {
        return QueueBuilder.durable(TTL_QUEUE).ttl(10000).build();
    }

ttl(): 设置队列的过期时间, 单位 毫秒

消息过期

@Test
    public void test01() {
        for (int i = 0; i < 10; i++) {
            Map<String, Object> person = new HashMap<>();
            person.put("name", "xiaoming"+i);
            person.put("age", 18+i);
            rabbitTemplate.setMandatory(true);
            rabbitTemplate.setConfirmCallback(testConfirmFallback);
            rabbitTemplate.setReturnCallback(testReturnFallback);
            rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_NAME, "test.ttl", person, message -> {
                message.getMessageProperties().setExpiration("5000");
                return message;
            });
        }
    }

message.getMessageProperties().setExpiration("5000"): 设置消息的过期时间, 单位 毫秒

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 个人专题目录 1. RabbitMQ 高级特性 1.1 消息可靠性投递 在使用 RabbitMQ 的时候,作为消息...
    Java及SpringBoot阅读 3,486评论 0 3
  • RabbitMQ 主要处理的问题 限流(削峰) 解耦 异步 RabbitMq 常用的交换器类型 fanout (分...
    布衣码农阅读 9,598评论 0 0
  • 0. 前言 本文内容分为如下三部分RabbitMQ高级特性 消息可靠性投递Consumer ACK消费端限流TTL...
    abboo阅读 5,473评论 1 8
  • 消息TTL 方式1:通过队列属性设置,队列中所有消息,都有相同的过期时间。 方式2:第二种方法是对消息本身进行单独...
    于情于你阅读 4,390评论 0 1
  • 1. RabbitMQ高级特性 1.1 消息的可靠性投递 RabbitMQ提供了两种方式用来控制消息的投递可靠性模...
    LWH_032e阅读 2,571评论 0 1

友情链接更多精彩内容