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

public class MaxOfRateLimiter<T> extends Object implements RateLimiter<T>
Rate limiter which calls every provided rate limiter and returns the worst case response. When used with a token bucket limiter, the burst could be apparently exceeded in cases where particular items were separately delayed a longer time.

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

  • Constructor Details

  • 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>