【问题标题】:How do you get RabbitMQ queue size from c# client?如何从 c# 客户端获取 RabbitMQ 队列大小?
【发布时间】:2017-08-09 18:58:25
【问题描述】:

我需要设置队列中的消息数量上限。所以很明显我需要知道队列中有多少项目。如何在不点击管理 API 或使用 QueueDeclarePassive 的情况下从 c# 客户端检查 RabbitMQ 队列中的消息数量?

【问题讨论】:

  • 解释否决票?
  • 回答你自己的问题没有错,但它必须是an actual question,而不仅仅是你的答案的介绍。阅读链接的“帮助他人”部分。
  • 帮助他人重现问题?
  • 问题是这个问题的所有堆栈溢出答案都指向错误的解决方案,浪费了我大量的时间。

标签: c# rabbitmq


【解决方案1】:

下面是 IModel 对象上的消息计数函数的示例。您不需要使用 QueueDeclarePassive 或向管理插件发出休息请求。有一个功能就在它应该在的地方。

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

对于文档: https://rabbitmq.github.io/rabbitmq-dotnet-client/api/RabbitMQ.Client.IModel.html#RabbitMQ_Client_IModel_MessageCount_System_String_

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多