【问题标题】:How to read the message from the service bus dead-letter queue?如何从服务总线死信队列中读取消息?
【发布时间】:2020-07-19 05:34:46
【问题描述】:

如何从服务总线死信队列中读取消息?我能够读取消息 ID 和消息的序列号,但我需要实际消息。有人可以帮我弄这个吗?是否可以阅读实际消息?

【问题讨论】:

  • 您遇到的错误是什么?代码在哪里?
  • 嗨@Jaas,是的,可以从死信队列中读取消息ID、序列号和实际消息有效负载。如果你想马上做这个功能,你应该通过 Serverless360 来做。

标签: azure queue servicebus dead-letter


【解决方案1】:

在读取死信队列的消息之前,您应该检查失败的原因是什么?如果某些服务不可用,则创建 WebJob 并尝试以下代码并处理消息。

public void GetDeadLetterMessagesAsync(string connectionString, string queueName)
    {
        var queueClient = QueueClient.CreateFromConnectionString(connectionString, QueueClient.FormatDeadLetterPath(queueName));
        while (true)
        {
            BrokeredMessage bmessgage = queueClient.Receive();
            if (bmessgage != null)
            {
                string msg = new StreamReader(bmessgage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
                //Custom business logic to prcess your message
                bmessgage.Complete();
            }
            else
            {
                break;
            }
        }
    }

如果消息有问题,那么您应该阅读并在 UI 上显示消息,以便后台团队可以更正消息,否则它将再次失败。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2019-12-24
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多