18 lines
288 B
Go
18 lines
288 B
Go
package http
|
|
|
|
import "time"
|
|
|
|
type RateLimiter struct {
|
|
ticker *time.Ticker
|
|
}
|
|
|
|
func NewRateLimiter(rateLimitPerMinute int) *RateLimiter {
|
|
return &RateLimiter{
|
|
ticker: time.NewTicker(time.Minute / time.Duration(rateLimitPerMinute)),
|
|
}
|
|
}
|
|
|
|
func (r *RateLimiter) Wait() {
|
|
<-r.ticker.C
|
|
}
|