Exclusive batch processing with fallbacks using RabbitMQ

351 Views Asked by At

I'm using RabbitMQ in PHP via AMQPLib and RabbitMQ Bundle (for Symfony).

The consumers work on multiple servers, that's what Rabbit is for and that's fine. I encountered however a specific case, where I'd like to read the messages in batches and I'd prefer having only one consumer working at the same time. But in order to achieve high availability I'd like have the the other consumers (from other servers) serving as fallbacks.

What I understand is:

  • there is a batch consume option, but as I noticed it doesn't guarantee I receive all the messages in a row to one batch.
  • there is exclusive flag on Rabbit consume command -- unfortunately the Rabbit bundle doesn't expose it; furthermore if there is an exclusive consumer on a queue, the other one exits with an exception I cannot handle using BatchConsumerInterface

Am I missing something? Is there perhaps some built-in solution allowing me to achieve, what I described above? Without writing complex solutions bypassing the RabbitMQ Bundle?

0

There are 0 best solutions below