我一直在尝试使用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中获取所有的故障详细信息,但希望有一种方法可以获取消费者名称。是否有其他方法可以获取消费者名称,还是应该写在标题里,我可能做错了什么?
1条答案
按热度按时间n6lpvg4x1#
这些头只在消息被移动到 _error 队列时添加。它们不会添加到消费者管道生成的
Fault<T>
中。