azure - 如何在Azure Function中设置Azure DocumentDB输出绑定(bind)的重试次数?

标签 azure azure-cosmosdb azure-functions

基于此question ,如果受到限制,写入 Azure Function 中的 Azure DocDB 输出绑定(bind)似乎将重试 10 次(HTTP 429)。不过我自己还没有验证过。

我想增加重试次数的限制。我的数据在很短的时间内以大块的形式出现,然后有很长一段时间的停机时间,这意味着获取 429 并等待一段时间对于我的目的来说是可以的。但我必须保证不会丢失任何数据。

解决这个问题的一种方法是增加文档数据库中的 RTU 限制,以确保在大块数据进入时我不会得到 429,但它已经是我在处理数据时所需的大约 2.5 倍了。停机期。是否有办法让重试无限运行直到成功,或者不太理想的是,将重试次数增加到 10 次以上?

最佳答案

为什么不改变方法,而不是立即插入文档,您可以利用服务总线并实现死信队列,以下是一些链接:

这个想法是这样的:

  1. 当前函数不会将数据保存在 DocumentDB 中,而是将其发送到服务总线(您只需更改输出绑定(bind))
  2. 另一个函数将处理服务总线的每条消息,如果失败(您可以在函数中管理超时,然后将消息移至死信队列)
  3. 另一个函数将处理死信队列中的任何消息

您只需要对第一个函数进行一个小更改,然后再创建两个函数,这可能听起来太复杂,但数据会具有很强的一致性。在上述所有链接中都有一个我在这里提到的示例。

关于azure - 如何在Azure Function中设置Azure DocumentDB输出绑定(bind)的重试次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43858412/

相关文章:

azure - 如何使用图形 API 获取用户所属的所有 Azure AD 组的列表?

windows - 从 .net 访问 Azure Windows 2012 VM 上的 Couchbase

Azure Cosmos db 和函数 javascript sdk - 如何异步读取文档?

azure-cosmosdb - 文档计数查询忽略 PartitionKey

azure - 将 JSON Web token (JWT) 与 Azure Functions 结合使用(不使用 Active Directory)

environment-variables - Azure函数中的Environment.SetEnvironmentVariable

azure - 如何在所有 Azure 函数实例之间共享对象状态

azure - Azure 的 Google 身份提供商中没有选择帐户页面

azure - 宇宙数据库 : Can I reduce the consumption of RUs when I split the document (in case of updating)?

在 Azure Function 中运行 R.NET