@RabbitListener(queues="XYZ")
public void rabbitMsgReceiver(@Payload final UserProfile up, Message msg, Channel channel) {
}
如果接收到的消息不是 的有效 JSON UserProfile
,则ListenerExecutionFailedException
发生并且消息进入 unack 状态。如何将消息发送到死信队列?
@RabbitListener(queues="XYZ")
public void rabbitMsgReceiver(@Payload final UserProfile up, Message msg, Channel channel) {
}
如果接收到的消息不是 的有效 JSON UserProfile
,则ListenerExecutionFailedException
发生并且消息进入 unack 状态。如何将消息发送到死信队列?
您可以配置死信队列策略,以便将未确认的消息发送到 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