温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - Spring Rabbit Listener shutdown handler or return message without redelivered flag
java rabbitmq spring spring-rabbitmq spring-rabbit

java - Spring Rabbit Listener关闭处理程序或没有重新传递标志的返回消息

发布于 2020-04-20 16:48:27

我有一个不寻常的情况,如果我的应用程序在处理消息期间已正常关闭(例如,自动缩放),则我不希望将消息与重新传递的标志一起发送回队列。我希望仅在应用程序崩溃时设置标志。我在代码中具有一个功能,可以以不同方式对待重新传递的消息,并且不应考虑由于正常关机而导致的重新传递的消息。我正在寻找某种关闭处理程序,可以从中将消息的副本发送到同一队列并丢弃原始消息,这样我就可以避免设置redelivered标志。

如果我的应用程序已正常关闭,是否可以在不设置重新传递标志的情况下将消息返回到队列中?

查看更多

提问者
Michael Dz
被浏览
62
Gary Russell 2020-02-05 22:11

如果我的应用程序已正常关闭,是否可以在不设置重新传递标志的情况下将消息返回到队列中?

没有; 一旦出于任何原因将其交付并拒绝(并重新排队),将设置重新交付标志。

框架中没有钩子可以执行您想要的操作;在任何情况下,将消息重新发送到队列都会改变消息的顺序。