[rabbitmq-discuss] Possibilities of RabbitMq pluggin
mklishin at gopivotal.com
Thu Mar 27 11:19:26 GMT 2014
On 27 March 2014 at 15:06:42, De Jaeghere, Patrice PDJ (pdejaeghere at beckman.com) wrote:
> 1) We need an atomic function that verifies if an echange exists,
> creates it if it doesn’t exist but return false if it exists. Can
> we implement this function with a RabbitMQ pluggin in erlang
> and can we call this function with the dotnet driver (or extension?)
You don’t need a plugin to do this. Create a temporary channel (model in .NET
client) and use ExchangeDeclarePassive. If it raises an exception (RabbitMQ.Exceptions.OperationInterruptedException), the exchange does not exist,
otherwise it does.
Then use Model#ExchangeDeclare to declare it (if needed).
This is not atomic in the sense that it requires multiple requests but as long
as different apps/clients agree on exchange attributes, it is completely safe
to re-declare an exchange or use the above technique.
> 2) Other need: When a queue has not anymore consumers , and if this
> queue is not persistent , is-it possible to develop a RabbitMQ
> pluggin which moves all messages of this queue in a dead-letter
> queue just before its deletion.
This currently requires a plugin. If messages were dead-lettered
when a queue is deleted (e.g. because it was auto-deleted and the last consumer
disconnects), it would also be possible without a plugin, but that’s not the case.
Software Engineer, Pivotal/RabbitMQ
More information about the rabbitmq-discuss