欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang頻率限制 rate詳解

 更新時(shí)間:2020年12月21日 10:19:52   作者:u010066807  
這篇文章主要介紹了golang頻率限制 rate詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

golang.org/x/time/rate 提對(duì)速度進(jìn)行限制的算法

l := rate.NewLimiter(1, 3) // 一個(gè)參數(shù)為每秒發(fā)生多少次事件,第二個(gè)參數(shù)是最大可運(yùn)行多少個(gè)事件(burst)

Limter提供三中主要的函數(shù) Allow, Reserve, Wait. 大部分時(shí)候使用Wait

Wait/WaitN 當(dāng)沒(méi)有可用事件時(shí),將阻塞等待

c, _ := context.WithCancel(context.TODO())
for {
 l.Wait(c)
 fmt.Println(time.Now().Format("04:05.000"))
}

輸出

07:35.055
07:35.055
07:35.055
07:36.060
07:37.059
07:38.059

緩存3次后,每秒執(zhí)行一次

Allow/AllowN 當(dāng)沒(méi)有可用事件時(shí),返回false
for {
 if (l.AllowN(time.Now(), 1)) {
  fmt.Println(time.Now().Format("04:05.000"))
 } else {
  time.Sleep(1 * time.Second / 10)
  fmt.Println(time.Now().Format("Second 04:05.000"))
 }

}

Reserve/ReserveN 當(dāng)沒(méi)有可用事件時(shí),返回 Reservation,和要等待多久才能獲得足夠的事件

for {
  r := l.ReserveN(time.Now(), 1)
  s := r.Delay()
  time.Sleep(s)
   fmt.Println(s, time.Now().Format("04:05.000"))

 }

補(bǔ)充:關(guān)于golang.org/x包問(wèn)題

由于谷歌被墻,跟谷歌相關(guān)的模塊無(wú)法通過(guò)go get來(lái)下載

解決方法:

git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net

git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys

git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools

ln -s $GOPATH/src/github.com/golang $GOPATH/src/golang.org/x

如果是Windows下,最后一條可以替換為mklink命令,或者直接拷貝文件夾修改一下名稱(chēng)即可。

go的官方包都在這個(gè)目錄下:

https://github.com/golang

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Golang?throttled基于GCRA速率限制庫(kù)使用探索

    Golang?throttled基于GCRA速率限制庫(kù)使用探索

    這篇文章主要為大家介紹了Golang?throttled基于GCRA速率限制庫(kù)使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Go語(yǔ)言在Linux環(huán)境下輸出彩色字符的方法

    Go語(yǔ)言在Linux環(huán)境下輸出彩色字符的方法

    這篇文章主要介紹了Go語(yǔ)言在Linux環(huán)境下輸出彩色字符的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Golang unsafe包中的類(lèi)型和函數(shù)詳解

    Golang unsafe包中的類(lèi)型和函數(shù)詳解

    Golang中的unsafe包用于在運(yùn)行時(shí)進(jìn)行低級(jí)別的操作,這些操作通常是不安全的,因?yàn)榭梢源蚱艷olang的類(lèi)型安全性和內(nèi)存安全性,使用 unsafe包的程序可能會(huì)影響可移植性和兼容性,接下來(lái)看下unsafe包中的類(lèi)型和函數(shù)
    2023-08-08
  • Golang filepath包常用函數(shù)詳解

    Golang filepath包常用函數(shù)詳解

    本文介紹與文件路徑相關(guān)包,該工具包位于path/filepath中,該包試圖與目標(biāo)操作系統(tǒng)定義的文件路徑兼容。本文介紹一些常用函數(shù),如獲取文件絕對(duì)路徑,獲取文件名或目錄名、遍歷文件、分割文件路徑、文件名模式匹配等函數(shù),并給具體示例進(jìn)行說(shuō)明
    2023-02-02
  • golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例

    golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例

    這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Go語(yǔ)言中的值類(lèi)型與引用類(lèi)型的使用

    Go語(yǔ)言中的值類(lèi)型與引用類(lèi)型的使用

    Go語(yǔ)言中的數(shù)據(jù)類(lèi)型可以分為值類(lèi)型和引用類(lèi)型,值類(lèi)型包括基本和復(fù)合數(shù)據(jù)類(lèi)型,特點(diǎn)是在傳遞時(shí)進(jìn)行復(fù)制,保證數(shù)據(jù)的安全性,引用類(lèi)型如slice、map等,傳遞的是引用副本,便于大型數(shù)據(jù)操作且提高性能,理解這些概念有助于編寫(xiě)更高效、安全的Go代碼
    2024-09-09
  • Go語(yǔ)言MD5加密用法實(shí)例

    Go語(yǔ)言MD5加密用法實(shí)例

    這篇文章主要介紹了Go語(yǔ)言MD5加密用法,實(shí)例分析了Go語(yǔ)言MD5加密的使用技巧,需要的朋友可以參考下
    2015-03-03
  • Gin使用swagger生成接口文檔的代碼示例

    Gin使用swagger生成接口文檔的代碼示例

    Swagger 是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化 RESTful Web 服務(wù),它使用 YAML 或 JSON 格式來(lái)定義 API 的結(jié)構(gòu),本文給大家介紹了Gin使用swagger生成接口文檔的代碼示例,需要的朋友可以參考下
    2024-06-06
  • 詳解如何在Go中使用Zap管理日志

    詳解如何在Go中使用Zap管理日志

    Zap提供了兩種類(lèi)型的日志記錄器—Sugared?Logger和Logger,可以更好的管理日志,這篇文章主要為大家介紹了使用Zap管理日志的具體方法,需要的可以了解一下
    2023-07-07
  • go語(yǔ)言中l(wèi)inkname的用法

    go語(yǔ)言中l(wèi)inkname的用法

    這篇文章主要介紹了go語(yǔ)言中l(wèi)inkname的用法,本文給點(diǎn)俺家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論