久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Golang 請求限速、排隊實現

概要

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

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

實現思路

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

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

整個代碼實現很簡單:

Golang 請求限速、排隊實現

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

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

Golang 請求限速、排隊實現

使用方法

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

啟動隊列服務

Golang 請求限速、排隊實現

使用隊列服務

Golang 請求限速、排隊實現

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

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

相關新聞

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

  • <menu id="dlktz"></menu>
    <ul id="dlktz"></ul>
    <menu id="dlktz"></menu>
    <bdo id="dlktz"></bdo>
    主站蜘蛛池模板: 石林| 宝丰县| 田阳县| 武穴市| 伊川县| 万宁市| 宁都县| 永仁县| 广饶县| 同心县| 镇江市| 固始县| 上饶县| 金阳县| 富裕县| 武乡县| 新竹市| 甘洛县| 巴南区| 桐乡市| 迁安市| 明溪县| 平凉市| 汾西县| 肥东县| 郸城县| 娄烦县| 玉田县| 义乌市| 武义县| 寻乌县| 鱼台县| 纳雍县| 腾冲县| 株洲市| 文安县| 安仁县| 贡山| 寿光市| 赫章县| 博野县|