20201113のGoに関する記事は1件です。

現場で使えるQPS制御(Rate Limit) 1秒間にn回の実行に制限する

1秒間に10回実行したい場合の例

https://godoc.org/golang.org/x/time/rate を使う

func main() {
    limiter := rate.NewLimiter(rate.Limit(10), 1)
    ctx := context.Background()

    for i := 0; i < 1000; i++ {
        if err := limiter.Wait(ctx); err != nil {
            fmt.Println(err)
        }
        fmt.Println(i)
    }
}

https://play.golang.org/p/ByAz9VCkGFk

参考

https://qiita.com/lufia/items/29bf1aeb0a0fe69d16f0
https://blog.lufia.org/entry/2016/08/28/000000

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む