Class DefaultRateLimitingQueue<T>

All Implemented Interfaces:
DelayingQueue<T>, RateLimitingQueue<T>, WorkQueue<T>

public class DefaultRateLimitingQueue<T> extends DefaultDelayingQueue<T> implements RateLimitingQueue<T>
The default rate limiting queue implementation.
  • Constructor Details

    • DefaultRateLimitingQueue

      public DefaultRateLimitingQueue()
    • DefaultRateLimitingQueue

      public DefaultRateLimitingQueue(ExecutorService waitingWorker)
    • DefaultRateLimitingQueue

      public DefaultRateLimitingQueue(ExecutorService waitingWorker, RateLimiter<T> rateLimiter)
  • Method Details

    • numRequeues

      public int numRequeues(T item)
      Description copied from interface: RateLimitingQueue
      numRequeues returns back how many times the item was requeued.
      Specified by:
      numRequeues in interface RateLimitingQueue<T>
      Parameters:
      item - specific item
      Returns:
      times the item was requeued
    • forget

      public void forget(T item)
      Description copied from interface: RateLimitingQueue
      forget indicates that an item is finished being retried. Doesn't matter whether its for perm failing or for success, we'll stop the rate limiter from tracking it. This only clears the `rateLimiter`, you still have to call `Done` on the queue.
      Specified by:
      forget in interface RateLimitingQueue<T>
      Parameters:
      item - item which is finished being retried
    • addRateLimited

      public void addRateLimited(T item)
      Description copied from interface: RateLimitingQueue
      addRateLimited adds an item to the workqueue after the rate limiter says its ok.
      Specified by:
      addRateLimited in interface RateLimitingQueue<T>
      Parameters:
      item - item to add