How to rate limit 20 requests per minute?
import "golang.org/x/time/rate"
limiter := rate.NewLimiter(rate.Every(1*time.Minute), 20)
for {
limiter.Wait()
//more code
}
This does not work. What that does is, it allows first 20 requests, then only allows 1 request per minute. What is expected is 20 requests on the first minute(Need not be evenly spread like 1 per 3 seconds) and then 20 more requests on the second minute. At any 1 minute interval, there cannot be more than 20 requests sent.
My solution: https://stackoverflow.com/a/72452542