簡體   English   中英

使用Firebase函數重試pubsub消息

[英]Retry pubsub messages using Firebase functions

我有一個Firebase函數,該函數由PubSub消息觸發,並處理需要對Google Drive API進行的一系列調用。 當由於速率限制錯誤而導致對Google Drive API的調用失敗時,我想重試這些調用。 我將調用添加到新的PubSub消息中,並將其添加到隊列中。 此消息將立即發送。 因此,我將延遲設置為直到消息中的參數,並且僅在延遲過去之后才處理消息,否則將消息再次添加到隊列中。 這導致郵件被傳遞和重試了很多次。 Firebase函數中是否可以讓偵聽器不接受消息? 然后,我可以在PubSub隊列上設置重試延遲。

我將從Google Drive API端或PubSub端來看。

首先建議是在獲得速率限制時調用Google Drive API時使用指數補償 ,正如API文檔中所說。

另一個建議是僅在成功調用Google Drive API 之后,對來自PubSub的消息進行ACK 根據您的確認截止期限設置,這基本上將阻止消息重新出現在隊列中,直到您確認或截止期限用盡為止。 如果您不確認該消息,則在截止日期過去后,它將自動將其扔回到隊列中。

像您這樣的情況是采用此ACK機制的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM