Documentation ¶
Index ¶
- type Limiter
- func (l *Limiter) Allow(name string, maxn int64, dur time.Duration) (count, reset int64, allow bool)
- func (l *Limiter) AllowHour(name string, maxn int64) (int64, int64, bool)
- func (l *Limiter) AllowMinute(name string, maxn int64) (int64, int64, bool)
- func (l *Limiter) AllowN(name string, maxn int64, dur time.Duration, n int64) (count, reset int64, allow bool)
- func (l *Limiter) AllowRate(name string, rateLimit rate.Limit) (delay time.Duration, allow bool)
- func (l *Limiter) Reset(name string, dur time.Duration) error
- func (l *Limiter) ResetRate(name string, rateLimit rate.Limit) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Limiter ¶
type Limiter struct { // Optional fallback limiter used when Redis is unavailable. Fallback *rate.Limiter // contains filtered or unexported fields }
Limiter controls how frequently events are allowed to happen.
func NewLimiter ¶
func NewLimiter(redis rediser) *Limiter
func (*Limiter) Allow ¶
func (l *Limiter) Allow(name string, maxn int64, dur time.Duration) (count, reset int64, allow bool)
Allow is shorthand for AllowN(name, max, dur, 1).
func (*Limiter) AllowMinute ¶
AllowMinute is shorthand for Allow(name, maxn, time.Minute).
func (*Limiter) AllowN ¶
func (l *Limiter) AllowN(name string, maxn int64, dur time.Duration, n int64) (count, reset int64, allow bool)
AllowN reports whether an event with given name may happen at time now. It allows up to maxn events within duration dur, with each interaction incrementing the limit by n.
func (*Limiter) AllowRate ¶
AllowRate reports whether an event may happen at time now. It allows up to rateLimit events each second.
Click to show internal directories.
Click to hide internal directories.