我有一个我在 .NET 中编写的应用程序,它可以使用单个使用者监视多个 RabbitMq 队列。
例如:
using (IConnection connection = factory.CreateConnection())
{
using (IModel channel = connection.CreateModel())
{
var _consumer = new QueueingBasicConsumer(channel);
string[] list = new string[] { "Queue1", "Queue2", "Queue3", "Queue4" };
_consumer = new QueueingBasicConsumer(channel);
foreach (string currQueueName in list)
{
channel.QueueDeclare(currQueueName, false, false, false, null);
channel.BasicConsume(currQueueName, true, _consumer);
}
while (true)
{
var ea = (BasicDeliverEventArgs)_consumer.Queue.Dequeue();
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
Console.WriteLine(" [x] Received {0}", message);
ProcessMessage(message);
}
}
}
基本上,我只想能够跨多个队列分配工作,但只有一个应用程序将它们全部使用(或者可以部署多个应用程序并执行相同的功能)。
我正在尝试将工作分散到队列中,以便消费者在队列中平等地接受工作。
这是否可以使用 Bunny 或本机 Ruby 驱动程序?