簡體   English   中英

RabbitMQ 消息過期通知

[英]RabbitMQ message expiry Notification

有沒有一種方法可以將消息推送到 RabbitMQ 並為其設置到期時間,一旦到期,它應該提供通知。 或者有什么方法可以在一定時間后在RabbitMQ中傳遞消息。 例如,我想在隊列中推送一條消息,並希望它在 10 秒后傳遞......同時下一條消息。

RabbitMQ Delayed Message Plugin 向 RabbitMQ 添加了一種新的交換類型,如果用戶選擇這樣做,則可以延遲由該交換路由的消息。

您可以按照如下所述的方式使用它。

// ... elided code ...
Map<String, Object> args = new HashMap<String, Object>();
args.put("x-delayed-type", "direct");
channel.exchangeDeclare("my-exchange", "x-delayed-message", true, false, args);
// ... more code ...

關於您問題的第一部分,由於每條消息 TTL 已過期的消息路由是RabbitMQ 死信交換 (DLX) 的一個功能。

關於延遲,這不是 RabbitMQ 開箱即用的支持,在我看來也不應該是消息代理的功能。 我無法想象一個合法的用例,您會故意在消息隊列中引入延遲。 事實上,任何消息代理的設計目標都是盡量減少排隊消息的延遲。 如果您發現延遲是合適的,那么消息隊列也可能不是合適的傳輸方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM