天天看點

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;
    }      

坑點,這個延遲時間屬性設定時毫秒級别,别再 人傳人 設定一個 個位數 了: