Dead-letterred messages not getting requeue to original queue after ttl

时光毁灭记忆、已成空白 提交于 2019-11-29 12:42:23
jhilden

When a queue has a TTL setup that means that messages in that queue will be sent to the dead-letter-exchange (DLX) associated with that queue after the TTL has expired. If the queue has no DLX assigned then the messages go into the bit bucket.

If you want to send messages back into the queue from which they came to be re-processed then you need to have the setup that I described in this post.

Dead-lettering dead-lettered messages in RabbitMQ

Hopefully that is helpful for you.

Suppose your original exchange is x.notification and is bind to the queue q.A with routing queue A. And your dead-letter-exchange namae is dlx.notification. Now in the queue q.A set ttl the time interval you want to wait and dead-lleter-exchange as dlx.notification. Now create another queue dlq.A to route the expired message from dlx.notification into dlq.A with routing key "A". I think thats all you need to do to achive your goal.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!