有没有一种方法可以让MassTransit在出现错误时放弃消息,而不是转发到错误队列/死信



我正试图在一个基于Azure Service Bus的非常可靠的基于消息的系统中使用MassTransit。当发生消息处理错误时,MassTransit会将消息移动到错误/故障队列中。我知道我可以对消费者的策略进行重试,我确实是。我想配置的是让MassTransit尝试处理消息,如果发生错误,放弃消息,这样它就会返回到订阅的前面,供另一个订阅用户拾取。

我正试图将其与一个自定义断路器结合使用,该断路器在发生处理错误时会立即断开。

这将增加服务巴士的交付数量,并最终可能导致死字,但我们已经有了基于非公交的方法来处理这一问题。

那么,有没有一种方法可以禁用所有错误队列功能,只放弃消息?

您可以使用配置接收端点

cfg.ThrowOnSkippedMessages();
cfg.RethrowFaultedMessages();

这将把错误传播回服务总线(订阅或队列(,并让MaxDeliveryCount最终决定它是否会出现在DLQ中。

相关内容

最新更新