MassTransit:尝试访问 ConsumeContext 的 MT-* 标头<Fault<T>>

问题描述 投票:0回答:1

我一直在尝试使用故障消费者来处理附加信息,但故障消费者的上下文似乎没有任何 MT-* 标头,当我手动从错误中获取消息时,我可以在 RabbitMq 管理工具中看到这些标头在那里排队。 这是我正在使用的代码

故障消费者:

public async Task Consume(ConsumeContext<Fault<TestDto>> context)
{
            
    try
        {
            var producingService = context.Message.Host.ProcessName;
                var consumerName = context.Headers.Get<string>("MT-Fault-ConsumerType", "Unknown");
    }
}

消费者:

public async Task Consume(ConsumeContext<TestDto> context)
{
    throw new Exception("Test");
}

我能看到的唯一标头是 MT-Fault-RetryCount(如果我启用重试)。我期望看到所有 MT-* 标头,例如 MT-Fault-Message 等。在大多数情况下,我可以从 context.Message.Exceptions 中获取所有故障详细信息,但希望有一种方法可以获取消费者名称。是否有另一种方法来获取消费者名称,或者它应该出现在标题中,而我可能做错了什么?

rabbitmq masstransit
1个回答
0
投票

仅当消息移至 _error 队列时才会添加这些标头。它们不会添加到消费者管道生成的

Fault<T>
中。

© www.soinside.com 2019 - 2024. All rights reserved.