[英]How to retrieve messages from RabbitMQ DeadLetter queue using MassTransit?
[英]MassTransit/RabbitMq Error queue - how to delete messages?
我有一个队列 {QueueName}。 我定义了一个消费者和 faulted-messages 消费者如下:
cfg.ReceiveEndpoint
(
queueName: QueueName,
e =>
{
e.UseMessageRetry(r => r.Immediate(2));
e.AutoDelete = false;
e.Durable = true;
e.Consumer(() => container.Resolve<My_Consumer>());
e.Consumer(() => container.Resolve<My_Fault_Consumer>());
}
);
当消费者耗尽其处理消息的尝试次数时,故障消息消费者将启动并通过记录错误来处理消息。 我注意到创建了额外的队列,名为 {QueueName}_error。
My_Fault_Consumer 不确认故障消息消耗并且队列增长。
如何确认这些消息?
error
队列是毒队列,或者是无效的消息通道
Fault<T>
消息的使用者不使用此队列。 Fault
消息与任何其他消息一样发布。 如果您查看毒队列的内容,您不会在那里看到任何Fault
消息,因为它打算保留您的消费者未能使用的原始消息。
此处的目的是您能够查看这些消息并最终决定将它们移回原始队列以进行重新处理,或者只是评估这些消息的内容以进行故障排除。
MassTransit 不对该队列执行任何操作,也不会从那里删除消息。 您可以通过 UI 或使用管理 API 或您的经纪人自己完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.