消息在隊列中的過期時間可以通過兩種方式設置
1.設置隊列的x-message-ttl
2.每次構造消息的時候為每個消息設置過期時間new AMQP.BasicProperties.Builder().expiration("6000");
兩者的區別是隊列中設置x-message-ttl,則隊列中的沒條消息的可存活時間都是一樣的(有一種例外是消息本身也設置了過期時間,如果過期時間小于x-message-ttl設置的過期時間,則按消息自身的過期時間來計算),也就是你設置的時間(默認是秒),而設置沒條消息的過期時間,對應沒條消息,會在你取出消息的時候判斷消息是否過期,也就是說消息在MQ里面的真正存活時間和可能大于你設定的時間,只是超過設定時間之后消息是取不出來的,但是資源任然在占用。
具體使用請參考: