Class DefaultControllerRateLimiter<T>

java.lang.Object
io.micronaut.kubernetes.client.openapi.operator.workqueue.ratelimiter.DefaultControllerRateLimiter<T>
Type Parameters:
T - item type
All Implemented Interfaces:
RateLimiter<T>

public class DefaultControllerRateLimiter<T> extends Object implements RateLimiter<T>
Default rate limiter for workqueue. It has both overall and per-item rate limiting. The overall is a token bucket and the per-item is exponential.

The code has been copied from the official client and modified: DefaultControllerRateLimiter

  • Constructor Details

    • DefaultControllerRateLimiter

      public DefaultControllerRateLimiter()
    • DefaultControllerRateLimiter

      public DefaultControllerRateLimiter(RateLimiter<T> internalRateLimiter)
  • Method Details

    • when

      public Duration when(T item)
      Description copied from interface: RateLimiter
      Decides how long an item should wait before adding it back to the queue.
      Specified by:
      when in interface RateLimiter<T>
      Parameters:
      item - an item that should wait
      Returns:
      how long an item should wait before adding it back to the queue
    • forget

      public void forget(T item)
      Description copied from interface: RateLimiter
      Indicates that an item is finished being retried (failed or succeeded).
      Specified by:
      forget in interface RateLimiter<T>
      Parameters:
      item - an item to remove from internal tracking
    • numRequeues

      public int numRequeues(T item)
      Description copied from interface: RateLimiter
      Returns a number of failures that the item has had.
      Specified by:
      numRequeues in interface RateLimiter<T>
      Parameters:
      item - an item
      Returns:
      number of failures that the item has had
    • reset

      public void reset()
      Description copied from interface: RateLimiter
      Resets the rate limiter.
      Specified by:
      reset in interface RateLimiter<T>