Dot-Net

如何檢查 RabbitMQ 消息隊列是否存在?

  • August 11, 2010

如何檢查消息隊列是否已存在?

我有 2 個不同的應用程序,一個創建一個隊列,另一個從該隊列讀取。

因此,如果我執行首先從隊列中讀取的客戶端,它就會崩潰。

所以為了避免這種情況,我想先檢查隊列是否存在。

這是我如何讀取隊列的程式碼片段:

QueueingBasicConsumer <ConsumerName> = new QueueingBasicConsumer(<ChannelName>); 
<ChannelName>.BasicConsume("<queuename>", null, <ConsumerName>); 
BasicDeliverEventArgs e = (BasicDeliverEventArgs)<ConsumerName>.Queue.Dequeue();

不要費心檢查。

queue.declare是冪等操作。所以,如果你執行一次,兩次,N次,結果還是一樣的。

如果要確保隊列存在,只需在使用前聲明即可。確保每次都以相同的持久性、排他性、自動刪除性聲明它,否則你會得到一個例外。

如果您確實需要檢查隊列是否存在(通常不需要),請對隊列進行被動聲明。如果隊列存在,則該操作成功;如果不存在,則該操作失敗並出現錯誤。

引用自:https://stackoverflow.com/questions/3457305