一个由 Storage 队列触发的 Azure Function 连接到 Azure SQL Database 时抛出 System.InvalidOperationException: timeout acquiring connection from the pool (max pool size reached) 异常。您应该如何更改以防止此异常?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 在 host.json 中,减小 batchSize 值.
为什么这是答案
当 Azure Function 处理 Storage 队列消息时,如果 batchSize 值过大,Function 可能会同时处理大量消息,导致短时间内创建大量到 Azure SQL Database 的连接。当连接数超过连接池的最大限制时,就会抛出 "timeout acquiring connection from the pool (max pool size reached)" 异常。减小 host.json 中的 batchSize 值可以降低 Function 并发处理消息的数量,从而减少同时打开的数据库连接数,避免连接池耗尽。 将触发器转换为 Azure Event Hubs 或将 Azure Function 切换到高级计划并不能直接解决连接池耗尽的问题,因为问题根源在于单个 Function 实例处理消息的并发性过高。function.json 中没有 type 值为 queueScaling 的配置选项。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡