У меня есть то, что кажется правильно настроенной очередью RabbitMQ (показывает аргумент dlx), и в моем коде слушателя Java я бросаю FatalListenerExecutionException
. По какой-то причине ничего не появляется в заданной очереди мертвых букв после того, как выбрано исключение.Spring AMQP - ничего не отображается в очереди мертвых букв
Я бросаю неправильное исключение?
Спасибо.
Очередь конкретизации в конфигурации Spring:
Map arguments = new HashMap();
arguments.put("x-dead-letter-exchange", "dlx.queue");
new Queue("some.queue", true, false, false, arguments);
Слушатель Контейнер в конфигурации Spring:
public SimpleMessageListenerContainer
someContainer(){
final SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.setQueues(createTheQueue());
container.setMessageListener(theListener());
container.setConcurrentConsumers(numberOfConcurrentConsumers);
container.setMaxConcurrentConsumers(maxDefaultConsumers);
container.setDefaultRequeueRejected(false);
return container;
}
Наручники для "some.queue", показанной на RabbitMQ консоли:
Parameters : x-dead-letter-exchange: dlx.queue
Спасибо. У меня фактически есть defaultRequeuRejected = "false". – mstrom
Вам необходимо указать вашу конфигурацию, включая привязку DLX/DLQ. –
Спасибо. Я добавил детали к исходному вопросу. – mstrom