如果处理失败,Rabbitmq将消息移动到不同的队列

时间:2017-07-25 18:35:42

标签: c# .net rabbitmq amqp

我正在使用RabbitMq .net和消息确认。如果消费者能够处理消息,我们可以以

的形式发回一个确认
channel.BasicAck(ea.DeliveryTag, false);

将把它从队列中取出。如果我遇到反序列化问题,我想将消息移到“错误队列”

var message = JsonConvert.DeserializeObject<object>(json);

我尝试过使用“x-dead-letter-exchange”,但这取决于“x-message-ttl”时间设置。我只想在处理失败时将消息移动到错误队列。如何实现这种功能?我在网上找不到任何帮助。

1 个答案:

答案 0 :(得分:2)

如果您的消费者使用basic.rejectbasic.nackrequeue标志设置为false拒绝该消息,RabbitMQ会将该消息重新发布到死信交换。这是documented in the article about dead-letter exchanges

以下是在RabbitMQ .NET 3.6.10客户端中拒绝或禁止消息的功能: