0

If I understand AMQP correctly:

After a message (delivery) is pushed to a consumer, the server waits for its ACK, if ACK is not received when the message reaches its TTL, the message is discarded.

What I want is for the message to be requeued when ACK is not received after a certain time, how can I do this?

And I also need to requeue the message at most 3 times. I know I can do this on the client side by keeping a counter and reject the message (NACK) when the counter reaches 3. But can this be done on the server side?

NeoWang
  • 17,361
  • 24
  • 78
  • 126
  • 1
    This Q/A is related to second part of question - http://stackoverflow.com/questions/23158310/how-do-i-set-a-number-of-retry-attempts-in-rabbitmq – pinepain Oct 27 '15 at 12:09

1 Answers1

1

Nothing you ask can't be done on RabbitMQ server side, unless you write plugin to do that, so probably you will have to do what you want on a client side.

pinepain
  • 12,453
  • 3
  • 60
  • 65
  • Additionally, you can take a look on [Plugins](https://www.rabbitmq.com/community-plugins.html) page (incl. [Community Plugins](https://www.rabbitmq.com/community-plugins.html)), maybe you will find something useful there to adapt to your needs. – pinepain Oct 27 '15 at 12:15
  • I have the same requirement. Redeliver a message after a certain time if acknowledge is not given. I was looking if i can configure rabbitmq to deliver unacknowledged messages after a regular interval. – TechChain Nov 29 '19 at 06:56