gpt4 book ai didi

c# - Azure 存储队列 - 计算可见消息

转载 作者:太空狗 更新时间:2023-10-29 23:43:35 24 4
gpt4 key购买 nike

我有一个分布式应用程序,它与 Azure 存储队列共享负载。为了验证一切是否正常工作,我编写了一个小应用程序,每 10 分钟运行一次并检查队列中有多少项目。如果数量高于阈值,请向我发送通知消息。

这就是我运行所有队列的方式:

Dictionary<string, int> dic = new Dictionary<string, int>();
foreach (CloudQueue queue in QueuesToMonitor)
{
queue.FetchAttributes();
dic.Add(queue.Name, queue.ApproximateMessageCount.HasValue ? queue.ApproximateMessageCount.Value : -1);
}

这段代码工作正常,但它也计算隐藏的消息。我想从计数中排除这些消息(因为这些任务尚未准备好执行)。

例如,我检查了我的一个队列,得到的答案是队列中有 579 个项目。但是,实际上没有可见的元素。我使用 Azure 存储资源管理器验证这一点: 0 of 579

如何只计算队列中可见的项目?

最佳答案

对您问题的简短回答是,您无法获取队列中仅可见消息的计数。

近似消息计数将为您提供队列中消息总数的近似计数,并且包括可见消息和不可见消息。

您可以做的一件事是PEEK at messages,它会返回给您可见消息的列表。但是,它最多只会返回队列中前 32 条消息。因此,如果阈值小于 32,则发送通知消息的逻辑将起作用。

关于c# - Azure 存储队列 - 计算可见消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926896/

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