2017-05-08 82 views
0

基於此question,似乎寫入Azure DocDB中的輸出綁定如果受到限制(HTTP 429),則會重試10次。我自己雖然沒有驗證過。如何設置Azure函數中Azure DocumentDB輸出綁定的重試次數?

我想增加這個重試次數限制。我的數據在很短的時間內進入大塊,然後經歷很長一段時間的停機時間,這意味着獲得429並等待一段時間對於我的目的而言沒有問題。但我必須保證沒有數據丟失。

解決這個問題的一種方法是增加文檔數據庫中的RTU限制,以確保在大量數據進入時我不會得到429,但它已經達到我需要的大約2.5倍在停機期間。無論如何要讓重試無限次地運行,直到它成功,或者不太理想,將重試次數增加到10次以上?

回答

1

你爲什麼不改變做法和而不是插入的文件馬上就可以使用服務總線和實施死信隊列,這裏有一些鏈接:

的想法是有這樣的事情:

0的
  1. 當前函數而不是保存在DocumentDB的數據,將其發送的服務總線(你只需要改變輸出結合)
  2. 另一個功能將處理服務總線的每一個消息,如果它失敗了(你可以在功能管理超時,然後將郵件移動到死信隊列)
  3. 將處理的任何消息在死信隊列

你只需要在第一個小變化的另一個功能函數並創建另外兩個,可能聽起來太複雜了,但是在數據中你會有很強的一致性。在上面的所有鏈接中都有一個我在這裏提到的例子。

+0

而不是移動到DLQ,您可以將服務總線隊列的重試次數設置爲較高的值。 – Mikhail

+0

@Mikhail是的,當然,但我的觀點是給另一種選擇:) –

+0

這聽起來不錯。我已經接受你的答案,並將實施這個。感謝:D – KangarooWest

相關問題