Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Clock ¶
Clock is the minimum necessary interface to instantiate a rate limiter with a clock or mock clock, compatible with clocks created using github.com/andres-erbsen/clock.
type Limiter ¶
Limiter is used to rate-limit some process, possibly across goroutines. The process is expected to call Take() before every iteration, which may block to throttle the goroutine.
func NewUnlimited ¶
func NewUnlimited() Limiter
NewUnlimited returns a RateLimiter that is not limited
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option configures a Limiter.
var WithoutSlack Option = slackOption(0)
WithoutSlack configures the limiter to be strict and not to accumulate previously "unspent" requests for future bursts of traffic.
func Per ¶
Per allows configuring limits for different time windows.
The default window is one second, so New(100) produces a one hundred per second (100Hz) rate limiter. New(2, Per(60*time.Second)) creates a 2 per minute rate limiter.