2017-08-09 88 views
0

我需要設置隊列中有多少條消息的上限。很顯然,我需要知道隊列中有多少物品。如何在不觸及管理API或使用QueueDeclarePassive的情況下從c#客戶端檢查RabbitMQ隊列中的消息數量?如何從c#客戶端獲得RabbitMQ隊列大小?

+0

解釋downvote? – Theyouthis

+0

回答你自己的問題沒有錯,但它必須是[實際問題](https://stackoverflow.com/help/how-to-ask),而不只是你的答案的介紹。閱讀鏈接的「幫助其他人」部分。 –

+0

幫助他人重現問題? – Theyouthis

回答

2

下面是IModel對象上消息計數函數的示例。您不需要使用QueueDeclarePassive或向管理插件發出休息請求。這裏有一個功能,它應該是。

public uint GetMessageCount(string queueName) 
{ 
    using (IConnection connection = factory.CreateConnection()) 
    using (IModel channel = connection.CreateModel()) 
    { 
     return channel.MessageCount(queueName); 
    } 
} 

對於文檔: http://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.6.4/rabbitmq-dotnet-client-3.6.4-client-htmldoc/html/type-RabbitMQ.Client.IModel.html#method-M:RabbitMQ.Client.IModel.MessageCount(System.String)