2015-05-29 8 views
5

का उपयोग करके कई RabbitMq सदस्यताों की निगरानी करें मेरे पास एक ऐसा एप्लिकेशन है जिसे मैंने .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); 
     } 
    } 
}  

असल में, मैं सिर्फ कई कतारों भर काम वितरित, लेकिन केवल एक ही आवेदन उन सब (या एक से अधिक आवेदन तैनात किया जा सकता लेने वाली है और एक ही समारोह में प्रदर्शन करने के लिए सक्षम होना चाहते हैं)।

मैं कतारों में काम फैलाने की कोशिश कर रहा हूं ताकि उपभोक्ता कतारों में समान रूप से नौकरियां ले रहे हों।

क्या यह बनी या मूल रूबी ड्राइवर का उपयोग कर संभव है?

+0

क्या बनी का उपयोग करके कई कतारों से उपभोग करना संभव है? हाँ। बनी ट्यूटोरियल यहां http://www.rabbitmq.com/tutorials/tutorial-one-ruby.html हैं –

उत्तर

0

मुझे लगता है कि मुझे बस थोड़ा और समय बिताने की जरूरत है।

मैं एक संक्षिप्त जवाब सिर्फ मामले में यह मदद करता है जोड़ रहा किसी और (या कोई एक क्लीनर समाधान प्रदान करना चाहता है: पी)

client = Bunny.new 
client.start 

channel = client.create_channel 
queues = %w(testing1 testing2 testing3) 
queues.each do |name| 
    channel.queue(name).subscribe(timeout: 2) do |info, props, body| 
    puts "[#{name}] Got #{body}" 
    end 
end 
loop do  
    sleep 1 
end 

यह प्रभावी ढंग से करता है कि मैं क्या ओपी में का वर्णन किया गया था।

संबंधित मुद्दे