Ich habe eine Anwendung, die ich in .NET geschrieben habe, die mehrere RabbitMq-Warteschlangen mit einem einzigen Verbraucher überwachen kann.Mehrere RabbitMq-Abonnements mit einer einzigen Anwendung überwachen
Zum Beispiel:
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);
}
}
}
Grundsätzlich mag ich nur in der Lage sein, die Arbeit über mehrere Warteschlangen zu verteilen, hat aber nur eine einzige Anwendung sie alle konsumiert (oder mehr Anwendungen eingesetzt werden können und die gleiche Funktion).
Ich versuche, die Arbeit über Warteschlangen zu verteilen, so dass die Verbraucher die Aufträge gleichmäßig über die Warteschlangen nehmen.
Ist dies mit Bunny oder dem nativen Ruby-Treiber möglich?
Ist es möglich, mit Bunny aus mehreren Warteschlangen zu konsumieren? Ja. Bunny Tutorials sind hier http://www.rabbitmq.com/tutorials/tutorial-one-ruby.html –