[rabbitmq-discuss] Problem with multiple consumers on multiple servers !

Tim Watson watson.timothy at gmail.com
Sat Mar 30 12:14:06 GMT 2013


The broker wont send a consumer another message until it avks the last one. Your consumers can opt to receive more than one un-acknowledged message by setting a prefetch count using basic.qos.

Perhaps that's the issue?

Cheers
Tim

On 29 Mar 2013, at 18:57, tluck <tilak.chauhan at ymail.com> wrote:

> Hi,
> 
> I've recently started to develop a cron job kind of mechanism by using
> rabbitmq. In this system a producer reads all the jobs (messages) from a
> database table and creates queues, depending upon the category of the job
> and puts jobs into their respective queues. In other words, each job belongs
> to a particular category and for each category we've a queue.
> 
> Now I've setup multiple consumers and each consumer is listening to a single
> queue. Below is the sample code (in PHP) for each consumer :
> 
> $connection = new AMQPConnection(HOST, PORT, USER, PASS, VHOST);
> $channel = $connection->channel();
> $channel->queue_declare('queue_category_1', false, true, false, false);
> $channel->exchange_declare('router', 'direct', true, true, false);
> $channel->queue_bind('queue_category_1', 'router', 'queue_category_1');
> 
> $callback = function($msg)  {  /***** code here to consume message/job
> ******/  };
> 
> $channel->basic_qos(null, 1, null);
> 
> $channel->basic_consume('queue_category_1', 'unique_consumer_tag', false,
> false, false, false, $callback);
> 
> while (count($channel->callbacks)) {
>    $channel->wait();
> }
> 
> When I try to call all the consumers simultaneously, I can see they all are
> consuming/processing messages/jobs parallely. Now I've added one more server
> (server-2) which consumes messages from previous sever (server-1). In this
> way, now the number of consumers are doubled (server-1 is working as both
> producer and consumer sever & server-2 is consumer server). In both the
> servers, consumer processes are running parallely, but, they are not
> consuming messages as they are supposed to do. The problem which I've
> noticed is that only one message/job from each queue is being consumed at a
> time. As I added one more server so now two jobs from each queue should be
> consumed at time instead of only one job. Soon I'll have to add more severs
> to make this system more distributed. Can anyone please help me to find out,
> why only one job is being consumed at a time ? and what can be the solution
> ?
> 
> Thanks in advance.
> 
> T.luck
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> --
> View this message in context: http://rabbitmq.1065348.n5.nabble.com/Problem-with-multiple-consumers-on-multiple-servers-tp25790.html
> Sent from the RabbitMQ mailing list archive at Nabble.com.
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss


More information about the rabbitmq-discuss mailing list