[rabbitmq-discuss] New exchange type

Matthias Radestock matthias at lshift.net
Fri Apr 25 06:57:07 BST 2008


Kyle,

Kyle wrote:
> On Thu, Apr 24, 2008 at 3:49 PM, Matthias Radestock <matthias at lshift.net 
> <mailto:matthias at lshift.net>> wrote:
> 
>     - Why is there the curious special-casing for the processing of the
>     Args for a topic exchange?
> 
> The special case was already in the declare method in 
> rabbit_exchange.erl:60. Args for a topic exchange is set to a tuple: 
> {sets:new(), Args},

Ah, I am pretty sure that bit of code is no longer needed. We should fix 
that. Well spotted.

>     - You should be able to use AMQP's boolean type for the "anycast"
>     argument, rather than 0 and 1. Also, take a look at lists:keysearch.
>     With those two changes the code should simplify to this:
> 
> When I ran some tests of checking for the anycast argument, it came up 
> as a signedint. This may be due to the python library I used. I set 
> anycast=True, and got a signedint in rabbit_exchange:route.

It turns out that the boolean table field type is a protocol extension 
introduced by qpid that we subsequently implemented in our broker for 
better interoperability. It is not supported by our Java client (we will 
consider adding it) and, I suspect, the python lib you are using.

> Otherwise the match would have to be {_Name, signedint, 1}, correct?

Yes, that should work.


Matthias.




More information about the rabbitmq-discuss mailing list