rabbitmq MassTransit:尝试访问ConsumeContext&lt;Fault &gt;的MT-* 标头< T>

qybjjes1  于 2023-11-19  发布在  RabbitMQ
关注(0)|答案(1)|浏览(151)

我一直在尝试使用Fault Consumer来处理其他信息,但Fault Consumer的上下文似乎没有任何MT-* 头,当我手动从RabbitMq管理工具的错误队列中获取消息时,我可以在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. Message中获取所有的故障详细信息,但希望有一种方法可以获取消费者名称。是否有其他方法可以获取消费者名称,还是应该写在标题里,我可能做错了什么?

n6lpvg4x

n6lpvg4x1#

这些头只在消息被移动到 _error 队列时添加。它们不会添加到消费者管道生成的Fault<T>中。

相关问题