c# - DocumentDBAttribute 绑定如何响应限制?
问题描述
我有使用 DocumentDBAttribute 绑定来读取和写入文档的天蓝色函数(C# v1 函数--非脚本)。在以下情况下,这些绑定如何响应限制?
- 通过将项目添加到 ICollector 来编写项目
- 通过提供 Id 读取项目
这适用于函数 v1。
第一种情况:
//input binding
[DocumentDB(ResourceNames.APCosmosDBName,
ResourceNames.EpisodeOfCareCollectionName,
ConnectionStringSetting = "APCosmosDB",
CreateIfNotExists = true)] ICollector<EOC> eoc,
//...
eoc.Add(new EOC()); //what happens here if throttling is occuring?
第二种情况:
[DocumentDB(ResourceNames.ORHCasesDBName, ResourceNames.ORHCasesCollectionName, ConnectionStringSetting = "ORHCosmosDBCases", CreateIfNotExists = true, Id = "{id}")] string closedCaseStr,
解决方案
输入和输出绑定都使用具有重试机制的 CosmosDB SDK。
默认情况下,SDK 会在一个限制的结果上重试 9 次,之后,异常冒泡,你的 Function 会出错。根据触发器类型,它将失败 HTTP 调用,将消息放回队列等。
重试遵循 Cosmos DB 返回的时间建议:
当客户端发送请求的速度超过允许的速率时,服务将返回 HttpStatusCode 429 (Too Many Request) 以限制客户端的速率。SDK 中的当前实现将等待服务告诉它等待的时间,并在该时间过去后重试。
目前,除了默认之外,无法使用其他策略配置绑定。
推荐阅读
- vue.js - 分辨率降低时的 Vue-Grid-Layout 响应组件
- javascript - 在 React js 项目的 Chakra ui 菜单中创建一个数字循环
- java - 为什么 Hibernate 添加新角色而不是在外键列中添加角色 id?
- r - 从 uniprot 加入 r 中检索 Fasta
- symbols - 将 xcarchive 转换为 ipa 时保留符号
- python - 如何在我想要的 html 页面中显示 Django 模型?
- javascript - 如何正确加载 Nuxt Js 项目中的脚本文件
- scroll - 当单击任何 radgrid 编辑时,我的页面会被回发,并且滚动位置页面会转到顶部窗口
- php - TCG\Voyager 没有得到关于关系的翻译
- reactjs - reactstrap 是否可以与 bootstrap v5 一起压缩