上Publisher Confirms的RabbitMQ的博客文章說區分
如果出版商和經紀人之間的連接以優異的確認下降,這並不一定意味着信息丟失,所以重新發布可能會導致重複的消息。
這意味着IModel.WaitForConfirmsOrDie()
將拋出一個異常(就像一個快速測試確認)時,在等待Ack
到經紀人的連接斷開,但消息還是可能交付。有沒有一種方法來區分,通過查看異常,是否
- 消息肯定不會被傳遞
- 消息可能已交付
換句話說,是有辦法肯定將所有(潛在可能的)Nack
(=未交付)與其他錯誤(如消息在代理處接受後)區分開來?
API文檔只能說
如果收到NACK,拋出OperationInterruptedException異常立即
在我的「點連接」測試,一個(異常源自)OperationInterruptedException被拋出好吧,所以這似乎排除只考慮類型的例外。