我有一个队列 {QueueName}。
我定义了消费者和错误消息消费者如下:
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 不确认故障消息消耗并且队列增长。
如何确认这些消息?
The error
队列是毒队列,或者无效的消息通道 https://www.enterpriseintegrationpatterns.com/patterns/messaging/InvalidMessageChannel.html
的消费者Fault<T>
消息does not使用这个队列。这Fault
消息与任何其他消息一样发布。如果你查看毒物队列的内容,你不会看到任何Fault
那里的消息,因为它打算保留original您的消费者未能消费的消息。
这里的目的是,您能够查看这些消息并最终决定将它们移回原始队列进行重新处理,或者只是评估这些消息的内容以进行故障排除。
MassTransit 对该队列不执行任何操作,也不会从那里删除消息。您可以通过 UI 或使用管理 API 或您的经纪商自行完成此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)