我很好奇Azure规范的扩展如何与输出到Document DB有关。
基本上当Document DB返回429时会发生什么,因为我超过了我分配的吞吐量?我问,因为当我将Azure功能的最低级别与文档数据库的最低级别相结合并在20秒内调用该函数1000次时,我只看到700-800个实际文档插入到我的文档数据库集合中。当我再次使用相同的最低功能级别将Document DB扩展到最大值时,我在doc db集合中只收到了700-800个文档。然而,当我将函数扩展到最大值时,文档数据库达到最大值,我得到全部1000.当我将doc db下降到最小值时,我只得到300.尽管看起来我确实已经锁定了doc db帐户,它仍在重试插入,直到它成功。
所以我很困惑这是缩放,如果我能得到一些见解,那么我可以更好地调整功能或应用程序的各个方面。
答案 0 :(得分:6)
是的,它目前在429上重试,根据DocDB响应等待建议的时间。目前没有绝对超时,所以重试将继续进行直到它们通过(如果这是预期的行为,我现在正在进行双重检查)。
在你的第一个场景中,如果你等了足够长的时间来移除油门,那么1000最终会出现吗?
我想尝试复制一下 - 在启用功能之前,您是否在队列中粘贴了1000个项目?或者用其他方式调用它?
如果您感到好奇,那么正在运行的特定重试代码就在这里:https://github.com/Azure/azure-webjobs-sdk-extensions/blob/master/src/WebJobs.Extensions.DocumentDB/DocumentDBUtility.cs#L36