[rabbitmq-discuss] basic.qos prefetch across multiple queues - useful?

Matthias Radestock matthias at rabbitmq.com
Mon Mar 18 19:24:27 GMT 2013


On 18/03/13 19:00, Laing, Michael P. wrote:
> We use python - a process normally has several channels open, using
> pika.SelectConnection and the continuation (event-driven) programming style.
>
> However, we typically use a channel per queue partly so that we can set
> prefetch on a per queue basis.

Interesting. Why is it important to you to set prefetch per queue consumer?

The existing basic.qos prefetch cross-queue limiting behaviour caters 
for scenarios where a client is consuming from multiple queues but can 
only process one message at a time and wants to limit the number of 
messages in-flight so they can processes by other consumers instead.

E.g. if a client is consuming from a hundred queues, and takes one 
minute to process each message, then with the current behaviour they can 
limit the backlog to 1 minute, whereas with per-queue prefetch the 
backlog could only be limited to 100 minutes or more.


Regards,

Matthias.


More information about the rabbitmq-discuss mailing list