Azure Function App-如何推迟和重新接收无法处理的消息

问题描述 投票:0回答:1

我具有以下Azure体系结构:

IoTDevices ---> IoTHub --->功能应用

其中:

  • IoTDevices:收集传感器数据并将其发送到IoTHub
  • IoTHub:从设备接收数据并将这些数据传递到Function App(使用与事件中心兼容的端点)
  • Function App:对接收到的数据进行一些处理

现在在Function App中,我有类似这样的内容:

public static void Run([IoTHubTrigger("messages/events", Connection = "EventHubConnection")]EventData message, TraceWriter log)
{
  string messageString = Encoding.UTF8.GetString(message.GetBytes());
  //do some processing with messageString as input
}

由于多种原因,在某些情况下无法执行处理;我想保存消息SequenceNumber并推迟该消息,以便稍后,当处理再次变得可用时,我可以从IoTHub重新接收该消息。综上所述,问题是:

  • 我如何推迟我的留言?
  • 在给定SequenceNumber的情况下,如何重新接收/重新阅读消息?
c# messaging azure-iot-hub azure-function-app
1个回答
0
投票
https://docs.microsoft.com/en-us/azure/service-bus-messaging/message-deferral

延迟的消息与所有其他活动消息一起保留在主队列中(与子队列中的死信消息不同),但是不再可以使用常规的Receive / ReceiveAsync函数来接收它们。如果应用程序无法跟踪,则可以通过邮件浏览来发现延迟的邮件。
© www.soinside.com 2019 - 2024. All rights reserved.