Spring Boot / RabbitMQ избегать разблокировки MSG - PullRequest
0 голосов
/ 28 ноября 2018
@RabbitListener(queues="XYZ")
public void rabbitMsgReceiver(@Payload final UserProfile up, Message msg, Channel channel)  {

}

Если полученное сообщение не является допустимым JSON UserProfile, то возникает сообщение ListenerExecutionFailedException, и сообщение переходит в состояние unack.Как я могу отправить сообщение в очередь мертвых писем?

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете настроить политику очереди недоставленных писем, чтобы отправлять неупакованные сообщения в dlq вместо помещения их в исходную очередь

https://www.rabbitmq.com/dlx.html#using-policies

пример для вашей очереди XYZ, предположим, чтоустановите для него XYZ-dlq:

sudo rabbitmqctl set_policy XYZ-dlq "^XYZ$" '{"dead-letter-exchange":"", "dead-letter-routing-key":"XYZ-dlq"}' --apply-to queues 
...