如何在Azure功能中设置Azure DocumentDB输出绑定的重试次数?

时间:2017-05-08 22:48:40

标签: azure azure-cosmosdb azure-functions

基于此question,如果限制(HTTP 429),在Azure功能中写入Azure DocDB输出绑定似乎将重试10次。我自己也没有证实这一点。

我想增加重试次数的限制。我的数据在很短的时间内进入大块,然后经历了很长一段时间的停机,这意味着获得429并等待一点就可以达到我的目的。但我必须保证,没有数据丢失。

我解决此问题的一种方法是增加文档数据库中的RTU限制,以确保在大块数据进入期间我没有获得429,但它已经是我需要的2.5倍停机期。反正是否有重复运行直到成功,或者理想情况下,重试次数增加到10次以上?

1 个答案:

答案 0 :(得分:1)

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

这个想法是这样的:

  1. 当前功能而不是保存DocumentDB中的数据,它将发送它的服务总线(你只需更改输出绑定)
  2. 另一个函数将处理服务总线的每条消息,如果失败(您可以在函数中管理超时,然后将消息移动到死信队列)
  3. 另一个将处理死信队列中的任何消息的函数
  4. 你只需要在第一个函数中做一个小的改动,再创建两个,可能听起来太复杂但你在数据中会有很强的一致性。在上面的所有链接中都有我在这里提到的一个例子。