4

単一のコンシューマーを使用して複数の RabbitMq キューを監視できる .NET で作成したアプリケーションがあります。

例えば:

 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);
        }
    }
}    

基本的に、複数のキューに作業を分散できるようにしたいだけですが、それらすべてを消費するアプリケーションは 1 つだけです (または、複数のアプリケーションを展開して同じ機能を実行することもできます)。

消費者がキュー全体で均等に仕事を引き受けるように、ワークアウトをキュー全体に分散しようとしています。

これは、Bunny またはネイティブの Ruby ドライバーを使用して可能ですか?

4

1 に答える 1