【问题标题】:How to get size (number of messages) of a MassTransit IBus?如何获取 MassTransit IBus 的大小(消息数量)?
【发布时间】:2015-10-27 19:58:59
【问题描述】:

我正在使用MassTransit 库的InMemoryMessageBus,我想知道如何获取队列中的消息数量(总线的大小)。

【问题讨论】:

    标签: c# masstransit


    【解决方案1】:

    使用内存传输的任何特定队列中的消息数不可用。消息传递基于排队的任务调度程序,并且消息计数尚未提供。我不确定它们是否可以(嗯,很容易。一切皆有可能,但实际是另一回事)。

    更新:这已添加到 MassTransit 并将在下一个版本 (3.5.x) 中。 tracking issue 在 GitHub 上,包括新代码的示例用法。

    【讨论】:

    • 这是否记录在某处?我在masstransit-project.com下找不到它@
    • 不确定你为什么需要它。这不是我会做的事情。你想做什么需要计数?
    • 这算不算预取的消息数量?
    • 没有消息数。
    【解决方案2】:

    如果您使用 RabbitMQ 作为传输,您可以使用HareDu。 以下 sn-p 将帮助您入门:

    var client = HareDuFactory.New(x => x.ConnectTo(RabbitMqHostUrl));
    
    var data = client
                .Factory<VirtualHostResources>(y => y.Credentials(RabbitMqUser, RabbitMqPass))
                .Queue
                .GetAll()
                .Data();
    
    foreach (var queue in data)
    {
    /*then you can access                
    queue.Name, queue.VirtualHostName, queue.Memory, queue.Messages,
    queue.MessagesReady, queue.MessagesUnacknowledged, queue.Node, queue.IsDurable, queue.Consumers, queue.IdleSince */
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多