我需要处理死信队列中的消息。我如何为此创建处理程序?另外,我需要处理来自错误队列的消息,这些消息也陷入死信状态。
最佳答案
正如 Chris Paterson(MassTransit.AzureServiceBus 的所有者)提到的,没有适合您的目的的 MassTransit 特定工具。如果 MassTransit 不是强制性的,我们可以使用 Azure Service Bus SDK 处理死信队列。死信队列完全支持窥视锁传递和事务操作。关于死信的更多详细信息,请引用document .
我们还可以获得demo code about dead-letter来自github。以下代码是演示代码的片段。
var deadletterReceiver = await receiverFactory.CreateMessageReceiverAsync(QueueClient.FormatDeadLetterPath(queueName), ReceiveMode.PeekLock);
while (true)
{
var msg = await deadletterReceiver.ReceiveAsync(TimeSpan.Zero);
if (msg != null)
{
Console.WriteLine("Deadletter message:");
foreach (var prop in msg.Properties)
{
Console.WriteLine("{0}={1}", prop.Key, prop.Value);
}
await msg.CompleteAsync();
}
else
{
break;
}
}
}
关于c# - 如何使用 MassTransit 在 Azure 中创建死信队列处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43097239/