gpt4 book ai didi

azure - 如何检查Azure存储队列是否有消息

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

我正在尝试同时使用一个 WebJob 和一个辅助角色。

WebJob 将有一个 BlobTrigger,每次将 Blob 添加到容器时,都会将一条新消息添加到 Azure 存储队列(称为待定 Blob)。

此外,还会有一个工作角色,它将汇集来自待处理 blob 队列的消息,并将 blob 名称添加到内部阻塞集合中,该集合将由由 worker 角色。

我认为在这个解决方案中要考虑可扩展性,因为会有很多 blob 到达容器,所以我不希望出现 CPU 消耗峰值。

在开发解决方案时我想到了一些问题:

  • 有没有办法检查 Azure 存储队列中是否有消息?
  • 如果我调用 GetMessage 方法并且队列没有任何消息,执行将被阻塞,直到有新消息到达?
  • 有没有办法手动删除 blob 收据?

最佳答案

Is there a way to check if the Azure Storage Queue has messages inside?

队列有一个 ApproximateMessageCount 属性,您可以检查队列深度(注意:这不是 100% 准确,因为在检查时可能会添加/删除消息)。

If I call the GetMessage method and the queue does not have any message the excecution will be blocked until a new message arrive?

GetMessage() 是非阻塞的。如果没有消息,则调用返回。注意:由于您计划在辅助角色中创建自己的读取器,因此在处理空队列时要小心:如果您将自己置于紧密循环中并继续爆破队列,则您将面临耗尽队列的风险2000 个事务/秒限制(您可能会看到网络流量和 CPU 利用率过高)。如何实现退避策略取决于您,但您需要合并某种类型的退避。

关于azure - 如何检查Azure存储队列是否有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39215956/

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