Dot-Net
如何檢查 RabbitMQ 消息隊列是否存在?
如何檢查消息隊列是否已存在?
我有 2 個不同的應用程序,一個創建一個隊列,另一個從該隊列讀取。
因此,如果我執行首先從隊列中讀取的客戶端,它就會崩潰。
所以為了避免這種情況,我想先檢查隊列是否存在。
這是我如何讀取隊列的程式碼片段:
QueueingBasicConsumer <ConsumerName> = new QueueingBasicConsumer(<ChannelName>); <ChannelName>.BasicConsume("<queuename>", null, <ConsumerName>); BasicDeliverEventArgs e = (BasicDeliverEventArgs)<ConsumerName>.Queue.Dequeue();
不要費心檢查。
queue.declare是冪等操作。所以,如果你執行一次,兩次,N次,結果還是一樣的。
如果要確保隊列存在,只需在使用前聲明即可。確保每次都以相同的持久性、排他性、自動刪除性聲明它,否則你會得到一個例外。
如果您確實需要檢查隊列是否存在(通常不需要),請對隊列進行被動聲明。如果隊列存在,則該操作成功;如果不存在,則該操作失敗並出現錯誤。