Я использую весеннюю загрузку с spring-amqp и прослушивателем на основе аннотаций для получения сообщения от брокера rabbitmq. У меня есть компонент Spring, который содержит такой метод:
@RabbitListener(queues = "tasks")
public void receiveMessage(@Payload Task task) {...}
Я использую режим AUTO для подтверждения сообщений после успешного выполнения receiveMessage (...). Если я обнаруживаю особую ошибку, я бросаю AmqpRejectAndDontRequeueException, чтобы поместить это сообщение в настроенную очередь недоставленных сообщений. Теперь мне нужно только добавить сообщение, чтобы оно было повторно помещено в основную очередь rabbitmq, а другой потребитель имел возможность снова работать с этим сообщением.
Какое исключение я должен выбросить для этого? Я бы не хотел использовать channel.basicNack (...), как описано здесь (http://docs.spring.io/spring-integration/reference/html/amqp.html), если возможно.