Если вы имеете в виду вы можете установить контейнер не снова поставить по умолчанию, но для некоторых снова поставить исключение, единственным способом вы можете сделайте это, чтобы установить defaultRequeueRejected
в true
(по умолчанию) и использовать собственный обработчик ошибок.
По умолчанию ConditionalRejectingErrorHandler
настроен по умолчанию FatalExceptionStrategy
, который обрабатывает определенные неустранимые исключения как фатальные (исключения для преобразования сообщений и т. Д.). Когда эти исключения выдаются, сообщение отклоняется и не запрашивается.
Вы можете предоставить пользовательский FatalExceptionStrategy
для обработчика ошибок и (начиная с версии 1.6.3) впрыснуть экземпляр подкласса ConditionalRejectingErrorHandler.DefaultExceptionStrategy
и реализации isUserCauseFatal()
- это позволяет определить, какие исключения являются фатальными (отвергаем и не снова поставить) и которые должны быть предъявлены. Обработчик ошибок достигает этого, бросая AmqpRejectAndDontRequeueException
, который является сигналом к контейнеру, чтобы не требовать сообщения.
Перед тем, как 1.6.3, вам необходимо было ввести полную реализацию FatalExceptionStrategy
.