校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > golang簡易令牌桶算法實現代碼

golang簡易令牌桶算法實現代碼

熱門標簽:宿遷便宜外呼系統代理商 重慶慶云企業400電話到哪申請 湛江crm外呼系統排名 不封卡外呼系統 鄭州智能語音電銷機器人價格 仙桃400電話辦理 寧波語音外呼系統公司 上海極信防封電銷卡價格 地圖標注免費定制店

基本思路:定義一個chan,chan大小為需要限制的qps大小,go一個協程啟動tick,每1000/qps時間在tick中寫入數值,啟動另一個協程,讀取chan中的值,如果讀取到chan中有值,則向下層接口發送請求。

代碼如下:

package main

import (
    "fmt"
    "time"
    "httpclient"
)

var LEN int = 10

func tickStoreCh(arrlen int, ch chan int) {
    len := 1000/arrlen
    fmt.Println(len)
    tickTime := time.NewTicker(time.Duration(len)*time.Millisecond)
    var i int
    for {
        fmt.Println(len)
        i++
        -tickTime.C
        ch- i
    }
}

func OrganReq(org string, qps int) {
    ch := make(chan int, qps)
    go tickStoreCh(qps, ch)
    time.Sleep(1000*time.Millisecond)
    for {
        //收客戶請求,發送http請求給RE
        client := httpclient.NewHttpClient(time.Duration(1000)*time.Millisecond, time.Duration(2000)*time.Millisecond)
        header := make(map[string]string)
        header["Content-Type"] = "application/json;charset=utf-8"
        code, err := client.ResponseCode("http://127.0.0.1:19988", header, "llltest")
        value := - ch
        fmt.Println(code, value, err, "lenchan:", len(ch))
        //time.Sleep(time.Second)
    }
}

到此這篇關于golang簡易令牌桶算法實現代碼的文章就介紹到這了,更多相關golang 令牌桶算法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Golang實現請求限流的幾種辦法
  • golang高并發限流操作 ping / telnet
  • golang接口IP限流,IP黑名單,IP白名單的實例
  • Golang 限流器的使用和實現示例
  • Golang實現請求限流的幾種辦法(小結)
  • Golang模擬令牌桶進行對訪問的限流方式

標簽:儋州 青海 物業服務 遼寧 西雙版納 海南 安康 電子產品

巨人網絡通訊聲明:本文標題《golang簡易令牌桶算法實現代碼》,本文關鍵詞  golang,簡易,令牌桶,算法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang簡易令牌桶算法實現代碼》相關的同類信息!
  • 本頁收集關于golang簡易令牌桶算法實現代碼的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阳新县| 晋宁县| 延吉市| 合江县| 通江县| 石狮市| 隆昌县| 五常市| 神池县| 金寨县| 石林| 睢宁县| 安龙县| 贵阳市| 麟游县| 那坡县| 鹤壁市| 扎赉特旗| 巨野县| 罗山县| 富蕴县| 色达县| 襄汾县| 谢通门县| 铁力市| 怀化市| 武安市| 长乐市| 绍兴县| 会理县| 海阳市| 巴东县| 永德县| 威海市| 诏安县| 辉南县| 襄垣县| 勐海县| 龙州县| 东丰县| 获嘉县|