type RateLimitingInterface … type TypedRateLimitingInterface … type RateLimitingQueueConfig … type TypedRateLimitingQueueConfig … // NewRateLimitingQueue constructs a new workqueue with rateLimited queuing ability // Remember to call Forget! If you don't, you may end up tracking failures forever. // NewRateLimitingQueue does not emit metrics. For use with a MetricsProvider, please use // NewRateLimitingQueueWithConfig instead and specify a name. // // Deprecated: Use NewTypedRateLimitingQueue instead. func NewRateLimitingQueue(rateLimiter RateLimiter) RateLimitingInterface { … } // NewTypedRateLimitingQueue constructs a new workqueue with rateLimited queuing ability // Remember to call Forget! If you don't, you may end up tracking failures forever. // NewTypedRateLimitingQueue does not emit metrics. For use with a MetricsProvider, please use // NewTypedRateLimitingQueueWithConfig instead and specify a name. func NewTypedRateLimitingQueue[T comparable](rateLimiter TypedRateLimiter[T]) TypedRateLimitingInterface[T] { … } // NewRateLimitingQueueWithConfig constructs a new workqueue with rateLimited queuing ability // with options to customize different properties. // Remember to call Forget! If you don't, you may end up tracking failures forever. // // Deprecated: Use NewTypedRateLimitingQueueWithConfig instead. func NewRateLimitingQueueWithConfig(rateLimiter RateLimiter, config RateLimitingQueueConfig) RateLimitingInterface { … } // NewTypedRateLimitingQueueWithConfig constructs a new workqueue with rateLimited queuing ability // with options to customize different properties. // Remember to call Forget! If you don't, you may end up tracking failures forever. func NewTypedRateLimitingQueueWithConfig[T comparable](rateLimiter TypedRateLimiter[T], config TypedRateLimitingQueueConfig[T]) TypedRateLimitingInterface[T] { … } // NewNamedRateLimitingQueue constructs a new named workqueue with rateLimited queuing ability. // Deprecated: Use NewRateLimitingQueueWithConfig instead. func NewNamedRateLimitingQueue(rateLimiter RateLimiter, name string) RateLimitingInterface { … } // NewRateLimitingQueueWithDelayingInterface constructs a new named workqueue with rateLimited queuing ability // with the option to inject a custom delaying queue instead of the default one. // Deprecated: Use NewRateLimitingQueueWithConfig instead. func NewRateLimitingQueueWithDelayingInterface(di DelayingInterface, rateLimiter RateLimiter) RateLimitingInterface { … } type rateLimitingType … // AddRateLimited AddAfter's the item based on the time when the rate limiter says it's ok func (q *rateLimitingType[T]) AddRateLimited(item T) { … } func (q *rateLimitingType[T]) NumRequeues(item T) int { … } func (q *rateLimitingType[T]) Forget(item T) { … }