天天看點

ActiveMQ筆記(6):消息延時投遞

注:本文采用spring的JmsTemplate來發送消息

步驟1、首先要修改activemq.xml配置檔案,啟用延時投遞

即:在broker節點加上schedulerSupport="true",然後重新開機activemq即可

步驟2、定義一個MessagePostProcessor的實作類

步驟3、jmsTemplate發送示例

上面的代碼示範了二種延時的用法:延時N毫秒、按corn表達式延時(注:此corn表達式并非Quartz架構中的corn表達式,而是linux中corntab中的表達 式,基本順序是"分(0-59) 時(0-23) 日(1-31) 月(1-12) 星期幾(1-7) ")

發送成功後,可以登入activemq的webconsole檢視消息的屬性:

在scheduled面闆中,可以看到延時的消息

ActiveMQ筆記(6):消息延時投遞

注:在開啟消息持久化存儲的前提下,就算把相應的queue在webconsole面闆中删除(即删除隊列),隻要投遞的時間尚未到,該消息也不會删除,仍然能正常延時投遞。

此外,在queues面闆中,如何檢視某條具體的消息,也可以通過屬性發現這條消息是延時消息,參考下圖:

ActiveMQ筆記(6):消息延時投遞

參考文章:

<a href="http://activemq.apache.org/kahadb.html" target="_blank">4、kahaDB官方文檔</a>