amqp - RabbitMQ: dropping messages when no consumers are connected -
i'm trying setup rabbitmq in model there 1 producer , 1 consumer, , messages sent producer delivered consumer if consumer connected, dropped if consumer not present.
basically want queue drop messages receives when no consumer connected it.
an additional constraint queue must declared on rabbitmq server side, , must not explicitly created consumer or producer.
is possible?
i've looked @ few things, can't seem make work:
- durable vs non-durable not work, because useful when broker restarts. need same effect on connection.
- setting
auto_deletetrue on queue means client can never connect queue again. x-message-ttl,max-lengthmake possible lose message when there consumer connected.- i've looked @ topic exchanges, far can tell, these affect routing of messages between exchange , queue based on message content, , can't take account whether or not queue has connected consumers.
the effect i'm looking auto_delete on disconnect, , auto_create on connect. there mechanism in rabbitmq lets me that?
after bit more research, discovered 1 of assumptions in question regarding x-message-ttl wrong. overlooked single sentence rabbitmq documentation:
setting ttl 0 causes messages expired upon reaching queue unless can delivered consumer immediately
it turns out simplest solution set x-message-ttl 0 on queue.
Comments
Post a Comment