亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Golang 請求限速、排隊實現(xiàn)

概要

在調(diào)用第三方 API 的時候, 基本都有訪問限速的限制條件. 第三方的 API 有多個的時候, 就不太好控制訪問速度, 常常會導(dǎo)致 HTTP 429(Too Many Requests) 然后就會有一段時間的禁止訪問.

為了應(yīng)對這種限速的情況, 通過一個簡單的請求隊列來控制訪問的速度, 之后基本沒遇到過 HTTP 429 了.

實現(xiàn)思路

首先, 每個請求包裝成一個?RequestParam?的 struct, 其中包含請求的地址,類型,參數(shù)以及 response 的 channel.

發(fā)送請求的時候, 只要將?RequestParam?放入請求隊列中即可, 請求完成后, 將 response 放入對應(yīng)的 channel 中.

整個代碼實現(xiàn)很簡單:

Golang 請求限速、排隊實現(xiàn)

這里的請求是用了我自己封裝的 apiclient, 可以根據(jù)實際情況替換.

在我的應(yīng)用場景里, 只要 api 順序訪問就不會出現(xiàn) HTTP 429 了, 如果這樣覺得速度太快的的話, 可以嘗試在?Run()?函數(shù)中加入一些時間間隔.

Golang 請求限速、排隊實現(xiàn)

使用方法

使用很簡單, 首先啟動, 然后每個調(diào)用的地方將?RequestParam?放入隊列并等待 response 即可.

啟動隊列服務(wù)

Golang 請求限速、排隊實現(xiàn)

使用隊列服務(wù)

Golang 請求限速、排隊實現(xiàn)

鏈接:https://www.cnblogs.com/wang_yb/p/13018901.html

(版權(quán)歸原作者所有,侵刪)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!