ratelimit

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2025 License: Apache-2.0, ISC Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PerObjectRateLimiter

type PerObjectRateLimiter[K comparable] struct {
	*sync.Mutex
	// contains filtered or unexported fields
}

PerObjectRateLimiter manages a per-object rate limit. It is thread-safe

func NewPerObjectRateLimiter

func NewPerObjectRateLimiter[K comparable](maxCacheSize int, cacheEntryTTL time.Duration) *PerObjectRateLimiter[K]

NewPerObjectRateLimiter creates a new PerObjectRateLimiter.

func (*PerObjectRateLimiter[K]) WaitOrCreate

func (l *PerObjectRateLimiter[K]) WaitOrCreate(ctx context.Context, key K, rateLimit rate.Limit, burstRate int) error

WaitOrCreate waits for the rate limiter for the given key to allow access. If the rate limiter does not exist, one is created using rateLimit and burstRate

Jump to

Keyboard shortcuts

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