Springboot ActiveMQ 消息重发延迟时间 坑记

简介: Springboot ActiveMQ 消息重发延迟时间 坑记

正确配置:

 

    @Bean
    public RedeliveryPolicy redeliveryPolicy(){
        RedeliveryPolicy  redeliveryPolicy=   new RedeliveryPolicy();
        //是否在每次尝试重新发送失败后,增长这个等待时间
        redeliveryPolicy.setUseExponentialBackOff(true);
        //重发次数,默认为6次   
        redeliveryPolicy.setMaximumRedeliveries(3);
        //重发时间间隔,默认为1秒 !!!! 
        redeliveryPolicy.setInitialRedeliveryDelay(2000);
        //第一次失败后重新发送之前等待2000毫秒,第二次失败再等待2000 * 2毫秒,这里的2就是value
        redeliveryPolicy.setBackOffMultiplier(2);
        //是否避免消息碰撞
        redeliveryPolicy.setUseCollisionAvoidance(false);
        //设置重发最大拖延时间-1 表示没有拖延只有UseExponentialBackOff(true)为true时生效
        redeliveryPolicy.setMaximumRedeliveryDelay(-1);
        return redeliveryPolicy;
    }


坑点,这个延迟时间属性设置时毫秒级别,别再 人传人 设置一个 个位数 了:

image.png


消费失败时,自动延迟重发,可以看到延迟秒数生效:


image.png

相关文章
|
2月前
|
消息中间件 监控 Java
Spring Boot中的RabbitMQ死信队列魔法:从异常到延迟,一网打尽【RabbitMQ实战 一】
Spring Boot中的RabbitMQ死信队列魔法:从异常到延迟,一网打尽【RabbitMQ实战 一】
64 0
|
消息中间件 Java RocketMQ
SpringBoot整合RocketMQ发送批量消息
SpringBoot整合RocketMQ发送批量消息
|
存储 消息中间件 Java
SpringBoot整合RocketMQ发送延时消息
当消息写入到Broker后,在指定的时长后才可被消费处理的消息,称为延时消息
|
9月前
|
消息中间件 Java
springboot整合延迟队列
springboot整合延迟队列
|
JSON 前端开发 JavaScript
|
消息中间件 Java Maven
ActiveMQ系列:结合SpringBoot,基于 application.xml 使用ActiveMQ
ActiveMQ系列:结合SpringBoot,基于 application.xml 使用ActiveMQ
94 0
ActiveMQ系列:结合SpringBoot,基于 application.xml 使用ActiveMQ
|
消息中间件 网络协议 Java
SpringBoot 整合 ActiveMQ|学习笔记
快速学习 SpringBoot 整合 ActiveMQ
119 0
SpringBoot 整合 ActiveMQ|学习笔记
|
消息中间件 缓存 监控
SpringBoot与缓存、消息、检索、任务、安全与监控
SpringBoot与缓存、消息、检索、任务、安全与监控
|
消息中间件 存储 Java
Spring boot + RabbitMQ延迟队列实战
Spring boot + RabbitMQ延迟队列实战
663 0
Spring boot + RabbitMQ延迟队列实战
|
消息中间件 网络协议 Java
springboot整合jms之activemq
springboot整合jms之activemq
129 0
springboot整合jms之activemq