gpt4 book ai didi

azure - 如何写入DLQ?

转载 作者:行者123 更新时间:2023-12-03 05:06:04 25 4
gpt4 key购买 nike

我当前正在尝试处理 DeadLetterQueue 消息。如何向 DLQ 写入消息?我尝试了以下方法:

{
"type": "serviceBus",
"name": "outputSbMsg",
"queueName": "dlq-test",
"connection": "bus",
"accessRights_": "Manage",
"direction": "out"
}

但是当我写入 mySbMsg 时,出现以下错误:

Cannot directly create a client on a sub-queue. Create a client on the main queue and use that to create receivers on the appropriate sub-queue.

如何写入 DLQ(最好使用节点)?

最佳答案

据我所知,您无法直接向服务总线 DLQ 写入任意消息。

这与 Azure Functions 无关。通常,C# 服务总线客户端会

  1. 将消息从队列中出列。
  2. 如果消息处理失败,它会抛出异常,调用 BrokeredMessage.Abandon()BrokeredMessage.DeadLetter()
  3. 其中每一个都可能将消息移至 DLQ(可能在多次重试后)。

现在,这在 C# Azure Functions 的上下文中没有太大变化

  1. 您创建一个 in 绑定(bind),用于从队列中获取消息。
  2. 如果处理失败,您可以抛出异常,或者根据需要显式调用 BrokeredMessage.Abandon()BrokeredMessage.DeadLetter()
  3. 消息被移至 DLQ(可能在多次重试后)。

现在,在 Node 中,您没有 BrokeredMessage 类。但你仍然可以抛出错误。如果您希望消息在出现第一个错误后移至 DLQ,请将服务总线队列的 Max Delivery Count 属性设置为 1

关于azure - 如何写入DLQ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43226025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com