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
Click to show internal directories.
Click to hide internal directories.