赞
踩
- package rlimit
-
- import (
- "fmt"
- "log"
- "testing"
- "time"
-
- "go.uber.org/ratelimit"
- )
-
- func TestRatelimit(t *testing.T) {
- rl := ratelimit.New(5) // per second
-
- log.Println("begin")
- prev := time.Now()
- for i := 0; i < 20; i++ {
- now := rl.Take()
- if i > 0 {
- fmt.Println(time.Now().String(), i, now.Sub(prev))
- }
- prev = now
- }
-
- log.Println("end")
- }
运行结果:
[@hbhly_x_128 rlimit]$ go test -v ./
=== RUN TestRatelimit
2022/03/26 16:57:41 begin
2022-03-26 16:57:42.014050639 +0800 CST m=+0.201108898 1 200ms
2022-03-26 16:57:42.21436404 +0800 CST m=+0.401422303 2 200ms
2022-03-26 16:57:42.415431893 +0800 CST m=+0.602490176 3 200ms
2022-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。