ratelimit

package
v2.2.0-rc8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2024 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package ratelimit provides a mechanism to rate limit requests based on a string key, refill rate and burst amount. Under the hood, it's a token bucket of size burst amount, that refills at the refill rate.

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
}

func New

func New(r time.Duration, burst int) *Limiter

New returns a new Limiter object with refresh rate and burst amount

func (*Limiter) Allow

func (l *Limiter) Allow(key string, count int) bool

Allow checks if the limiter that belongs to 'key' has not exceeded the limit.

func (*Limiter) Clear

func (l *Limiter) Clear(key string)

Clear deletes the limiter that belongs to 'key'

func (*Limiter) Wait added in v2.2.0

func (l *Limiter) Wait(ctx context.Context, key string, count int) (time.Duration, error)

Wait blocks until the limiter permits n events to happen. Returns the time duration the limiter waited for to allow the number of events to occur.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL