2016-03-16 30 views
1

如果我發佈帶有確認(model.ConfirmSelect)的AKA basic.ack和強制性標誌。如果郵件未送達,我是否會始終在basic.ack事件之前獲取basic.return事件。RabbitMQ basic.return

我想將所有basic.return消息添加到ConcurrentDictionary中,發佈後我會檢查消息是否在dicitonary中我會拋出一個異常,沒有隊列/路由存在,並刪除它,錯誤或成功。

回答

0

是的,您將始終按照該順序接收事件。

documentation

當將消息得到證實?

對於不可路由的消息,一旦交換機驗證消息不會路由到任何隊列(返回空的隊列列表),代理將發出確認。 如果該消息也作爲強制發佈,則basic.return會在basic.ack之前發送給客戶端。對於否定確認(basic.nack)也是如此。