[rabbitmq-discuss] 3.3.0: How to achieve channel.flow(0) with basic.qos?

mrogan martin.rogan.inc at gmail.com
Wed May 7 17:58:03 BST 2014


Hi,

Support for channel.flow(bit active) was removed in RabbitMq 3.3.0 (
changelog <https://www.rabbitmq.com/release-notes/README-3.3.0.txt>  ). I
was using it to suspend flow on a channel when initially consuming a queue
with basic.consume. The reason is that I need to determine if I am the
exclusive consumer of that queue and perform business logic before starting
to receive already pending messages.

I read that "basic.qos is superior in all cases" but I don't see how to
completely suspend the flow by setting the prefetch-count. If I set the
prefetch-count to zero then then it is effectively unlimited. This is not
the same as channel.flow(0)!

I can work around this by buffering messages until I can perform my business
logic after the (successful) basic.consume. But this would seem to be
reimplementing the channel.flow that has disappeared!

If I am missing something please let me know. Maybe there's a special value
I can pass to basic.qos to achieve the same effect as channel.flow? Or is
there a way I can determine if I can exclusively basic.consume a queue
without actually starting to receive messages? I am using the Java client.

Thanks,

Martin



--
View this message in context: http://rabbitmq.1065348.n5.nabble.com/3-3-0-How-to-achieve-channel-flow-0-with-basic-qos-tp35405.html
Sent from the RabbitMQ mailing list archive at Nabble.com.


More information about the rabbitmq-discuss mailing list