【发布时间】:2019-02-27 07:25:23
【问题描述】:
我正在尝试使用“golang.org/x/time/rate”来构建一个函数,该函数会阻塞直到令牌可用。这是使用库将代码块限制为每秒 40 个请求的正确方法吗,桶大小为 2。
type Client struct {
limiter *rate.Limiter
ctx context.Context
}
func NewClient() *Client {
c :=Client{}
c.limiter = rate.NewLimiter(40, 2)
c.ctx = context.Background()
return &c
}
func (client *Client) RateLimitFunc() {
err := client.limiter.Wait(client.ctx)
if err != nil {
fmt.Printf("rate limit error: %v", err)
}
}
对我调用的代码块进行速率限制
RateLimitFunc()
我不想使用代码,因为我希望速率限制器考虑到调用代码运行的时间长度。
【问题讨论】:
标签: go