[rabbitmq-discuss] Consume

Yann Luppo yluppo at leads360.com
Thu Oct 13 20:00:18 BST 2011



I'm currently trying to setup RabbitMQ for my company and we have 1
publisher pushing to 1 queue, pretty simple so far. 

But we have lots of consumers, potentially up to a hundred, reading that
queue. Reason being the processing of each of those messages can take a
long time.


To clarify, in our current scenario after processing, the consumer logic
requeues the message. The goal is to have a given set of messages being
processed over and over again in a cycle.


We're using the .Net client library and we quickly favored the consumer


QueueingBasicConsumer consumer = new

string consumerTag = this.channel.BasicConsume(this.queueName, noAck,


But we ran into issues where the messages were getting dropped. I payed
attention to make sure we were doing the necessary ACK and/or NACK to
make sure a message always gets processed.

After a while I decided that my implementation was flawed somewhere, so
for a test I simplified the code and started using the Subscription


Subscription subscription = new Subscription(this.channel,
this.queueName, false);


foreach (BasicDeliverEventArgs e in subscription)
  if (!e.Redelivered)

The problem w/ this approach is all our consumers read all the
messages.... Instead of just dequeuing in a round-robin fashion.


Could someone point me in the right direction for using RabbitMQ to do a
round-robin-like distribution?




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20111013/66544771/attachment.htm>

More information about the rabbitmq-discuss mailing list