【发布时间】:2023-01-14 20:29:08
【问题描述】:
我正在设置 Azure LogicApp 以从存储队列读取消息并将消息发布到 API 端点:
LogicApp 按预期触发并记录成功运行。我可以看到我的队列消息已从队列中删除,但随后又被放回队列中,因为 LogicApp 没有处理 for each 循环,也没有运行循环中的 DeleteMessage 步骤。
当我看着运行历史这输出区域显示消息当队列中有消息时步骤,但获取消息 (V2)步骤没有显示在其中有任何 QueueMessages 要处理输出:
我还观察到在 LogicApp 运行后消息被出列并返回,并带有增加的出列计数属性。
为什么第一步会使消息出队?它不会只是检查是否存在任何消息而不拉取它们吗?如果是第 2 步拉取了它,那么为什么我在输出中看不到任何消息?
如何正确处理我的队列消息?我想将它们分批提取 32 个(这是最大数量)并在 For each 循环中处理它们。
【问题讨论】:
-
消息一旦被处理就会出列,这就是框架的整体工作方式。还有一个问题,如果队列中有 31 条消息,而另一条消息又 5 天没有进来怎么办,我假设您想及时处理这 31 条消息,比如每 5 到 10 分钟或其他什么时间?
-
我错误地认为它会在队列填满时分批运行任意数量的消息,最多 32 条。但是我现在知道我是不正确的,而是按照下面的 SwethaKandikonda-MT 建议,我在它们进来时一次处理每个 1。
标签: azure azure-logic-apps azure-storage-queues