我使用RabbitMQ的队列解决方案,我有4个队列,一个消费者在RabbitMQ的一个消费者多处理器。我希望我的消费者使用所有这些队列,并为每个队列提供单独的处理程序。无法实现使用EasynetQ客户对于.NET
我GOOGLE了这一点,并发现的RabbitMQ和EasyNetQ(.NET客户端的RabbitMQ),提供了先进的API(this link和This link)
在此文章中提供的示例代码定义为多处理器这一功能消费者:
bus.Advanced.Consume(queue, x =>
x.Add<MyMessage>((message, info) => { Console.WriteLine("Got MyMessage {0}", message.Body.Text); countdownEvent.Signal(); })
.Add<MyOtherMessage>((message, info) => { Console.WriteLine("Got MyOtherMessage {0}", message.Body.Text); countdownEvent.Signal(); })
);
我的问题: 所以,当我尝试使用这个例子中,添加<>方法是未知的。 问题是什么?以及我应该如何使这种方法可用?
我的代码的使用部分:
using RabbitMQ;
using EasyNetQ;
using EasyNetQ.Consumer;
我的代码:
using (var bus = RabbitHutch.CreateBus("host=localhost;prefetchcount=100"))
{
var queue = bus.Advanced.QueueDeclare("QueueMessageTypes.VehicleDeviceChangeMessage:QueueMessageTypes_VehicleDeviceChangeMsg");
bus.Advanced.Consume(queue, x => x
.Add<PositionMessage>((message, info) =>
{
Console.WriteLine("Got MyMessage {0}", message.Body.Text);
})
.Add<VehicleDeviceChangeMessage>((message, info) =>
{
Console.WriteLine("Got MyOtherMessage {0}", message.Body.Text);
})
);
}
我想我应该用一个命名空间或类中使用添加<>方法。可能它是一个扩展方法,我应该从库中找到并添加相关的类。