gpt4 book ai didi

azure - 限制 Azure Function App 中的 Azure 存储队列处理

转载 作者:行者123 更新时间:2023-12-03 11:18:16 24 4
gpt4 key购买 nike

我创建了一个带有 Azure 存储队列触发器的 Azure Function 应用,该触发器处理一个队列,其中每个队列项都是一个 URL。该函数只是下载 URL 的内容。我有另一个函数,用于加载和解析站点的 XML Sitemap 并将所有页面 URL 添加到队列中。我遇到的问题是,Functions 应用程序运行得太快,它会影响网站,因此它开始返回服务器错误。有没有办法限制/调节 Functions 应用程序的运行速度?

当然,我可以编写一个简单的 Web 作业来串行处理它们(或者使用一些异步,但限制并发请求的数量),但我真的很喜欢 Azure Functions 的简单性,并且想尝试“无服务器”计算.

最佳答案

您可以考虑几个选项。

首先,您可以在 host.json 中配置一些旋钮来控制队列处理(记录为 here )。 queues.batchSize 旋钮是一次获取多少队列消息。如果设置为 1,则运行时将一次获取 1 条消息,并且仅在该消息的处理完成后才获取下一条消息。这可以为您在单个实例上提供一定程度的序列化。

另一个选项可能是您对排队的消息设置 NextVisibleTime,使其间隔开 - 默认情况下,排队的消息变得可见并准备立即处理。

最后一个选项可能是您将消息与站点的所有 URL 的集合一起放入队列,而不是一次一个,因此当处理消息时,您可以在函数中连续处理 URL,并且以这种方式限制并行性。

关于azure - 限制 Azure Function App 中的 Azure 存储队列处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094041/

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