camel-rabbit exclusive consumer

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

camel-rabbit exclusive consumer

daknin
Hi

I'm using camel-rabbit 2.21.1 and want to
create an exclusive consumer. I've tried using the exclusive=true
option but that creates an exclusive queue which may only be accessed
by the current connection and is deleted when that connection closes.
I want to be able to lock an existing durable queue for my exclusive
use.

Looking at org.apache.camel.component.rabbitmq.RabbitConsumer.java I
see it does:

tag = channel.basicConsume(consumer.getEndpoint().getQueue(),
consumer.getEndpoint().isAutoAck(), this);

To support an exclusive consumer I think it needs to call the
overloaded version of basicConsume:

basicConsume(java.lang.String queue,
                              boolean noAck,
                              java.lang.String consumerTag,
                              boolean noLocal,
                              boolean exclusive,
                              Consumer callback)

Is there an option I have overlooked ?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: camel-rabbit exclusive consumer

Claus Ibsen-2
Hi

Thanks for reporting and the PR
https://github.com/apache/camel/pull/2403


On Thu, Jun 28, 2018 at 8:13 PM, Darrell King <[hidden email]> wrote:

> Hi
>
> I'm using camel-rabbit 2.21.1 and want to
> create an exclusive consumer. I've tried using the exclusive=true
> option but that creates an exclusive queue which may only be accessed
> by the current connection and is deleted when that connection closes.
> I want to be able to lock an existing durable queue for my exclusive
> use.
>
> Looking at org.apache.camel.component.rabbitmq.RabbitConsumer.java I
> see it does:
>
> tag = channel.basicConsume(consumer.getEndpoint().getQueue(),
> consumer.getEndpoint().isAutoAck(), this);
>
> To support an exclusive consumer I think it needs to call the
> overloaded version of basicConsume:
>
> basicConsume(java.lang.String queue,
>                               boolean noAck,
>                               java.lang.String consumerTag,
>                               boolean noLocal,
>                               boolean exclusive,
>                               Consumer callback)
>
> Is there an option I have overlooked ?
>
> Thanks



--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2