gpt4 book ai didi

azure - 如何判断 Azure 队列中的最后一条消息何时被删除

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

我正在探索 Azure 函数和队列触发器来实现递归求解器。

所需的行为如下:

  1. 存在一个名为“solveme”的队列,当它收到包含状态的项目时,将创建具有唯一名称 (GUID) 的第二个队列,并将初始状态和一些相关信息发送到该队列。

  2. 当一条消息被接收到新创建的队列中时,它可能会排队代表所有下一个可能状态的更多工作,以便在消息“完成”之前,新工作将存在于队列中。如果给定状态没有有效的下一个状态,它将仅完成消息。这意味着在所有新工作排队之前原始消息并未“完成”。在此步骤中,我将使用步骤 1 中的相关信息将数据注销到表示有效解决方案的 Azure 表中。

<强>3。当新创建的队列中的所有消息都处理完毕后,删除该队列。

我不知道如何在没有计时器或检查队列长度直到它为零并删除它的情况下进行#3。我尝试仅使用 Azure Functions 和 Azure 存储 - 不使用其他任何东西。

如果有办法直接从 QueueTrigger 或在 QueueTrigger 调用的函数中执行操作,那就太好了。

此外,是否有更好/标准的方法来触发此类工作的完成?实际上,空队列是所有工作完成的触发器,但如果有更好的方法,我想知道!

最佳答案

没有可靠的方法可以开箱即用地做到这一点。如果你的消费者比生产者快,队列可能会长时间保持在 0,而生产者仍然不断发送数据。

我建议您发送一个特殊的“序列结束”消息,这样当消费者收到此消息时,它就知道要删除队列。

附注看看Durable Functions - 看起来您可以使用其中的一些编排,而不是自己实现工作流程(请注意它处于早期预览中)。

关于azure - 如何判断 Azure 队列中的最后一条消息何时被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45084261/

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