[rabbitmq-discuss] Rejecting and requeuing a message to postpone it
Emile Joubert
emile at rabbitmq.com
Thu Sep 20 11:12:35 BST 2012
Hi,
On 20/09/12 00:36, fourat wrote:
> How would you resolve such an issue ?
You can simulate delayed publishing by publishing to a queue with the
required per-message TTL as well as a dead-letter-exchange (DLX)
configured. When the TTL expires it will be published to the DLX, so the
nett effect is delayed publishing.
http://www.rabbitmq.com/ttl.html#per-queue-message-ttl
http://www.rabbitmq.com/dlx.html
You might also consider delaying the requeue operation on the client
until the prerequisite service is available.
You could also craft a solution by taking the "redelivered" parameter
into account. This boolean flag indicates whether a message has been
previously delivered. Attempting to requeue a message that has already
been redelivered might signal the onset of a loop and this might be a
good place to introduce a delay or additional logic to prevent the loop.
http://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.deliver.redelivered
Emile
More information about the rabbitmq-discuss
mailing list