代码之家  ›  专栏  ›  技术社区  ›  Brandon Avant

逐个处理服务总线队列消息

  •  0
  • Brandon Avant  · 技术社区  · 6 年前

    我是个新手 Azure服务总线队列

    使用微软的文档,我能够理解这一部分。据我所知,我需要为队列打开会话?

    我所要做的是确定对队列执行以下一组有序任务的最佳方法/服务堆栈。

    n 消息数。我该如何:

    1. 从队列中提取第一条消息。
    2. 使用 Azure函数 .
    3. 将有效负载发送到IoT集线器,该集线器将传送到外部设备(C2D)。
    4. 这是我搞不懂的部分 完整的 从物联网中心返回的指示器
    5. 现在完成队列中的项目。
    6. 从1点开始。

    我想也许 也许能帮我实现我的目标。在4号之前,一切似乎都很顺利。我不知道如何使用逻辑应用程序1。等IoT Hub确认 消息已发送或过期,2。在收到IoT集线器确认之前,不要处理队列中的下一条消息 我已将当前队列消息标记为已完成。

    请注意:我之所以对这一点如此具体,是因为接收传出IoT集线器C2D消息的设备关心订单。如果他们收到的消息顺序不正确,它会使进程中断。

    如有任何建议,我们将不胜感激。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Arunprabhu    6 年前

    具有会话的Azure服务总线队列可用于实现消息的有序处理。

    从这个问题上,我可以理解,只有在从物联网集线器接收到确认之后,才应该删除来自服务总线队列的消息。

    我能感觉到这种流动可能会出现问题。

    首先,你需要了解 lock duration 服务总线队列中的属性。根据为此属性设置的值,消息将被锁定x分钟或秒。每当从队列接收到消息时,都会对该消息应用锁。使消息在x分钟或秒内不可用于任何其他接收器。 Complete

    可以为“锁定持续时间”属性设置的最大值为5分钟。

    因此,如果您确定IOT中心在5分钟内响应,则可以继续此实现。尽管如此,仍无法让函数知道何时处理下一条消息。