【问题标题】:Get MassTransit message retries amount获取 MassTransit 消息重试次数
【发布时间】:2016-11-08 15:00:57
【问题描述】:

我正在使用 Masstransit+RabbitMQ。我的一位消费者实施了重试策略,我想知道一旦消息在错误队列中,是否有任何方法可以让消息重试?

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

谢谢。

【问题讨论】:

    标签: c# rabbitmq masstransit


    【解决方案1】:

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

    consumeContext.GetRetryAttempt()
    

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

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

    【讨论】:

    • 是的,但是这些数据存储在哪里?在消息的标题中还是在中间件的某个地方?
    • 在消息处理过程中在中间件有效负载中维护。它不会在任何地方持久化。
    • @ChrisPatterson:还没有尝试使用 RabbitMQ,但是使用 Azure 服务总线或内存中的传输,返回值始终为 0。这是一个错误吗?缺少的功能?还是它对你有用而我做错了什么?
    • 大家好。有没有人找到解决方案?我有同样的问题。我没有发现任何关于它的信息。
    • 你可能会在 Discord 上问,“同样的问题”通常很接近但还不够。此外,它可以与最新版本的 MassTransit 一起正常工作,因此可能需要考虑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-18
    • 2011-06-11
    • 1970-01-01
    相关资源
    最近更新 更多