[rabbitmq-discuss] Re-subscribing to a queue in a cluster

Emile Joubert emile at rabbitmq.com
Thu Oct 11 11:02:00 BST 2012

Hi Adam,

On 09/10/12 17:07, Adam Brightwell wrote:
> the RPC call involved with the basicConsume is blocking other Channel
> based operations.  This is why I suspect that the "basicAck" was unable to
> execute successfully and that the "handleDelivery" was never being reached.

If you have multiple consumers per channel then long-running consumers
may hold up dispatch of callbacks to other consumers on that channel.
The Java API guide has more information:


> instance, having a thread pool dedicated for such operations, utilizing
> java's ExecutorService or is there something already built in to the
> client api that will provide me a way to run this code if I wrapped it in
> a Runnable, Callable, etc.?

You may supply your own ExecutorService if you need to - see the API
guide again.

> Also, as a side note, has any consideration been given to using java's
> concurrency model more widely in the java client api?  For instance,
> synchronization of methods or code blocks to possibly help avoid such
> situations?

I'm not sure how much more concurrency can be offered without violating
ordering constraints. Please feel free to suggest concrete improvements.


More information about the rabbitmq-discuss mailing list