如何获得MassTransit IBus的大小(消息数量)?

时间:2015-10-27 19:59:00

标签: c# masstransit

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

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

如果您使用RabbitMQ作为传输,则可以使用HareDu。 以下代码段将帮助您入门:

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 */
}