ratelimiter

package
v2.13.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCustomAppControllerRateLimiter

func NewCustomAppControllerRateLimiter(cfg *AppControllerRateLimiterConfig) workqueue.TypedRateLimiter[string]

NewCustomAppControllerRateLimiter is a constructor for the rate limiter for a workqueue used by app controller. It has both overall and per-item rate limiting. The overall is a token bucket and the per-item is exponential(with auto resets)

func NewItemExponentialRateLimiterWithAutoReset

func NewItemExponentialRateLimiterWithAutoReset(baseDelay, maxDelay, failureCoolDown time.Duration, backoffFactor float64) workqueue.TypedRateLimiter[string]

Types

type AppControllerRateLimiterConfig

type AppControllerRateLimiterConfig struct {
	BucketSize      int64
	BucketQPS       float64
	FailureCoolDown time.Duration
	BaseDelay       time.Duration
	MaxDelay        time.Duration
	BackoffFactor   float64
}

func GetDefaultAppRateLimiterConfig

func GetDefaultAppRateLimiterConfig() *AppControllerRateLimiterConfig

type ItemExponentialRateLimiterWithAutoReset

type ItemExponentialRateLimiterWithAutoReset struct {
	// contains filtered or unexported fields
}

ItemExponentialRateLimiterWithAutoReset does a simple baseDelay*2^<num-failures> limit dealing with max failures and expiration/resets are up dependent on the cooldown period

func (*ItemExponentialRateLimiterWithAutoReset) Forget

func (*ItemExponentialRateLimiterWithAutoReset) NumRequeues

func (r *ItemExponentialRateLimiterWithAutoReset) NumRequeues(item string) int

func (*ItemExponentialRateLimiterWithAutoReset) When

Jump to

Keyboard shortcuts

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