Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Limiter ¶
type Limiter struct {
// contains filtered or unexported fields
}
Limiter allows a burst of request during the defined duration
func NewUnlimited ¶
NewUnlimited create a bucket with approximated unlimited tokens
func (*Limiter) SleepandReset ¶ added in v0.0.3
func (ratelimiter *Limiter) SleepandReset(sleepTime time.Duration, newLimit uint, duration time.Duration)
SleepandReset stops timer removes all tokens and resets with new limit (used for Adaptive Ratelimiting)
type MultiLimiter ¶ added in v0.0.3
type MultiLimiter struct {
// contains filtered or unexported fields
}
MultiLimiter is wrapper around Limiter than can limit based on a key
func NewMultiLimiter ¶ added in v0.0.3
func NewMultiLimiter(ctx context.Context, opts *Options) (*MultiLimiter, error)
NewMultiLimiter : Limits
func (*MultiLimiter) Add ¶ added in v0.0.3
func (m *MultiLimiter) Add(opts *Options) error
Adds new bucket with key
func (*MultiLimiter) GetLimit ¶ added in v0.0.3
func (m *MultiLimiter) GetLimit(key string) (uint, error)
GetLimit returns current ratelimit of given key
func (*MultiLimiter) SleepandReset ¶ added in v0.0.3
func (m *MultiLimiter) SleepandReset(SleepTime time.Duration, opts *Options) error
SleepandReset stops timer removes all tokens and resets with new limit (used for Adaptive Ratelimiting)
func (*MultiLimiter) Stop ¶ added in v0.0.4
func (m *MultiLimiter) Stop(keys ...string)
Stop internal limiters with defined keys or all if no key is provided
func (*MultiLimiter) Take ¶ added in v0.0.3
func (m *MultiLimiter) Take(key string) error
Take one token from bucket returns error if key not present