获取 MassTransit 消息重试量

Pau*_*lik 3 c# masstransit rabbitmq

我正在使用大众运输+RabbitMQ。我的一个消费者实现了重试策略,我想知道一旦消息进入错误队列,是否有任何方法可以获得消息的重试次数?

另外我想知道 MT 是如何计算重试的,因为我没有使用 RabbitMq 服务器在消息头中找到任何相关信息。

谢谢。

Chr*_*son 7

您可以在您的消费者中使用以下方法重试重试尝试次数。

consumeContext.GetRetryAttempt()
Run Code Online (Sandbox Code Playgroud)

如果当前的处理尝试是重试,它应该返回 > 0。

一旦达到重试限制,下一版本的 MassTransit (v6) 将在错误队列中包含一个标头,该标头将包含MT-Fault-RetryCount已尝试的重试次数。此外,Fault<T>消息将具有相同的可用标头。