Poison Message Handling for Classic Queues #10301
Replies: 2 comments
-
Thanks for using RabbitMQ. Before filing a new issue for any software project, it's best to see if your request has been discussed before: https://github.com/rabbitmq/rabbitmq-server/issues?q=is%3Aissue+poison In your case, the following apply: |
Beta Was this translation helpful? Give feedback.
-
Worth mentioning that we have a prototype for priority feature in quorum queues. It's quite a bit different than the classic queue implementation but it'd be great if you could provide feedback whether that meets your needs: Note that the priority values work differently - there are only 3 priorities and the value provided in the message maps as follows: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Is your feature request related to a problem? Please describe.
A message is causing the consumer to fail critically (e.g. OOM).
Currently, "[if a consumer dies (its channel is closed, connection is closed, or TCP connection is lost) without sending an ack, RabbitMQ will understand that a message wasn't processed fully and will re-queue it. If there are other consumers online at the same time, it will then quickly redeliver it to another consumer.](https://www.rabbitmq.com/tutorials/tutorial-two-java.html#:~:text=If%20a%20consumer%20dies%20(its,redeliver%20it%20to%20another%20consumer.)"
In this way the message will be retried indefinitely.
Describe the solution you'd like
I'd like have the Poison Message Handling for Quorum Queues for classic queue as well. On of the reason is that I'm using the priority policy available for classic queue which is unavailable from quorum queue.
Describe alternatives you've considered
I think the only available solution is to associate a counter to the specific message and store it on an external system (e.g. DB) before processing the message. When the message will be redelivered and re-consumed by the consumer that will be back to live, it checks the counter. If the counter exceed a threshold, skip it.
Additional context
I'm not sure this is the right repository. In case it is not, I'll be happy to open the issue elsewhere.
Beta Was this translation helpful? Give feedback.
All reactions