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