如何限制每分钟 20 个请求?
import "golang.org/x/time/rate"
limiter := rate.NewLimiter(rate.Every(1*time.Minute), 20)
for {
limiter.Wait()
//more code
}
这不起作用。这样做的是,它允许前 20 个请求,然后每分钟只允许 1 个请求。预计第一分钟有 20 个请求(不需要像每 3 秒 1 个那样均匀分布),然后第二分钟再有 20 个请求。在任何 1 分钟间隔内,发送的请求不能超过 20 个。
设置您期望的速率:
游乐场:https ://go.dev/play/p/ZpxpHj0vK7P
您似乎在寻找允许“最多 20 次,每分钟重置一次”的东西。这是一个尝试:
https://go.dev/play/p/5WiOJL5nqCy