c# - 如何使用 MassTransit 在 Azure 中创建死信队列处理程序?

标签 c# .net azure azureservicebus masstransit

我需要处理死信队列中的消息。我如何为此创建处理程序?另外,我需要处理来自错误队列的消息,这些消息也陷入死信状态。

最佳答案

正如 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/

相关文章:

c# - ASP.NET MVC 4 DropDownList SelectedValue 不起作用

python - 使用 Python 列出订阅中的所有 Azure 数据工厂

c# - GDI+ 中的非缩放笔

c# - 在 C# 应用程序中嵌入 IronScheme

c# - 如何在没有 .sln 或 .csproj 文件的情况下在 Visual Studio 2013 中打开/加载 asp.net 下载的项目

c# - 尝试写入空十进制值时出现 Filehelpers NullReferenceException

c# - 如何将日期正确转换为 UTC,然后再将其转换回来?

c# - .NET 编程 - 我可以从我的 VB.NET 项目访问 C-Sharp 项目的成员吗?

python - 将平面文件从 Azure Data Lake 加载到数据框中时出现问题

c# - Azure AD B2C 单点登录实现