Hey. I need to send messages with full delivery confirmation - the message was sent to the right queue and was taken for execution. The fact is that the task that will be completed later does not even matter for 5-10 seconds.

Accordingly, I need to use two flags mandatory and immediate. It turned out that the immediate flag is not supported in rabbitmq since version 3.0. Instead, developers suggest using TTL = 0 for the queue. With the proviso that waiting for confirmation that the message was thrown on the floor should not be.

This behavior does not suit me at all.

Is there any way to monitor messages that are not taken into processing? Share your experience how you solved similar problems. In general, rabbitmq completely covers the whole range of tasks I need, but for now the thing in choosing a tool is ready to replace it with analogues with the same functionality.


I will try to describe the problem in more detail. I have clients who go to API handles.

The API in turn sends the message to rabbitmq. Rabbit - to the workers. In the future, there will be a certain heartbeat in the form of a database that will store the status of the tasks performed by the workers.

I have to answer the client right away that something has gone wrong. Accordingly, he, having processed the error, could repeat the request - this is a requirement. I can increase the number of workers up to a certain limit, so as not to rest on a piece of iron. I also cannot arrange workers on other servers — and this requirement too (implementation is tied to a specific server).

  • one
    I have a feeling that you are trying to implement synchronous processing through the queue. If you are so critical to receive a response, it is easier to do this with internal HTTP requests that immediately tell you the state. - etki

0