性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

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

概要

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

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

實現(xiàn)思路

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

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

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

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

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

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

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

使用方法

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

啟動隊列服務

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

使用隊列服務

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

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

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

相關新聞

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