type RateLimiter …
type TypedRateLimiter …
func DefaultControllerRateLimiter() RateLimiter { … }
func DefaultTypedControllerRateLimiter[T comparable]() TypedRateLimiter[T] { … }
type BucketRateLimiter …
type TypedBucketRateLimiter …
var _ …
func (r *TypedBucketRateLimiter[T]) When(item T) time.Duration { … }
func (r *TypedBucketRateLimiter[T]) NumRequeues(item T) int { … }
func (r *TypedBucketRateLimiter[T]) Forget(item T) { … }
type ItemExponentialFailureRateLimiter …
type TypedItemExponentialFailureRateLimiter …
var _ …
func NewItemExponentialFailureRateLimiter(baseDelay time.Duration, maxDelay time.Duration) RateLimiter { … }
func NewTypedItemExponentialFailureRateLimiter[T comparable](baseDelay time.Duration, maxDelay time.Duration) TypedRateLimiter[T] { … }
func DefaultItemBasedRateLimiter() RateLimiter { … }
func DefaultTypedItemBasedRateLimiter[T comparable]() TypedRateLimiter[T] { … }
func (r *TypedItemExponentialFailureRateLimiter[T]) When(item T) time.Duration { … }
func (r *TypedItemExponentialFailureRateLimiter[T]) NumRequeues(item T) int { … }
func (r *TypedItemExponentialFailureRateLimiter[T]) Forget(item T) { … }
type ItemFastSlowRateLimiter …
type TypedItemFastSlowRateLimiter …
var _ …
func NewItemFastSlowRateLimiter(fastDelay, slowDelay time.Duration, maxFastAttempts int) RateLimiter { … }
func NewTypedItemFastSlowRateLimiter[T comparable](fastDelay, slowDelay time.Duration, maxFastAttempts int) TypedRateLimiter[T] { … }
func (r *TypedItemFastSlowRateLimiter[T]) When(item T) time.Duration { … }
func (r *TypedItemFastSlowRateLimiter[T]) NumRequeues(item T) int { … }
func (r *TypedItemFastSlowRateLimiter[T]) Forget(item T) { … }
type MaxOfRateLimiter …
type TypedMaxOfRateLimiter …
func (r *TypedMaxOfRateLimiter[T]) When(item T) time.Duration { … }
func NewMaxOfRateLimiter(limiters ...TypedRateLimiter[any]) RateLimiter { … }
func NewTypedMaxOfRateLimiter[T comparable](limiters ...TypedRateLimiter[T]) TypedRateLimiter[T] { … }
func (r *TypedMaxOfRateLimiter[T]) NumRequeues(item T) int { … }
func (r *TypedMaxOfRateLimiter[T]) Forget(item T) { … }
type WithMaxWaitRateLimiter …
type TypedWithMaxWaitRateLimiter …
func NewWithMaxWaitRateLimiter(limiter RateLimiter, maxDelay time.Duration) RateLimiter { … }
func NewTypedWithMaxWaitRateLimiter[T comparable](limiter TypedRateLimiter[T], maxDelay time.Duration) TypedRateLimiter[T] { … }
func (w TypedWithMaxWaitRateLimiter[T]) When(item T) time.Duration { … }
func (w TypedWithMaxWaitRateLimiter[T]) Forget(item T) { … }
func (w TypedWithMaxWaitRateLimiter[T]) NumRequeues(item T) int { … }