gpt4 book ai didi

azure - 如何确定 Azure 队列中的所有消息是否都已处理完毕?

转载 作者:行者123 更新时间:2023-12-01 12:58:59 25 4
gpt4 key购买 nike

我刚刚开始修补 Windows Azure,希望能帮助解答一个问题。

如何确定 Windows Azure 队列是否为空以及其中的所有工作项是否已处理?如果我有多个工作进程查询工作项队列,则如果队列为空,GetMessage(s) 不会返回任何消息。但不能保证当前不可见的消息不会被推回到队列中。

我需要此功能,因为我的工作流程的后续行为取决于该特定队列中所有工作项的完成。解决此问题的一种可能方法是计算放置和删除的数量。但这再次需要在共享存储级别进行同步,如果可能的话我想避免它。

有什么想法吗?

最佳答案

看看ApproximateMessageCount方法。这应该返回队列上的消息数量,包括不可见的消息(例如正在处理的消息)。

Mike Wood 在博客中介绍了这一微妙之处,以及有关队列 Clear 方法的花絮,here .

也就是说:您可能想要选择不同的工作流管理机制。也许是一个表行,其中的 rowkey 等于某个多队列项转换 id,并且各个属性是状态标志。这允许您跟踪事务的失败部分(例如,10 个队列项中有 9 个处理正常,第 10 个失败;您仍然可以删除第 10 个队列项,但将其状态标志设置为失败,然后让您处理这种情况因此)。另外:假设您使用相同的队列来处理另一个“事务”(意味着队列的长度再次非零)。通过使用像表行这样的单独对象,即使存在其他队列消息,您仍然可以确定您的“事务”已完成。

关于azure - 如何确定 Azure 队列中的所有消息是否都已处理完毕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941532/

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