Class QueueResizingEsThreadPoolExecutor

  • All Implemented Interfaces:
    java.util.concurrent.Executor, java.util.concurrent.ExecutorService

    public final class QueueResizingEsThreadPoolExecutor
    extends EsThreadPoolExecutor
    An extension to thread pool executor, which automatically adjusts the queue size of the ResizableBlockingQueue according to Little's Law.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor

        java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static double EWMA_ALPHA  
    • Method Summary

      Modifier and Type Method Description
      protected void afterExecute​(java.lang.Runnable r, java.lang.Throwable t)  
      protected void appendThreadPoolExecutorDetails​(java.lang.StringBuilder sb)
      Append details about this thread pool to the specified StringBuilder.
      int getCurrentCapacity()
      Returns the current queue capacity
      int getCurrentQueueSize()
      Returns the current queue size (operations that are queued)
      double getTaskExecutionEWMA()
      Returns the exponentially weighted moving average of the task execution time
      protected java.lang.Runnable unwrap​(java.lang.Runnable runnable)  
      protected java.lang.Runnable wrapRunnable​(java.lang.Runnable command)  
      • Methods inherited from class java.util.concurrent.ThreadPoolExecutor

        allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow
      • Methods inherited from class java.util.concurrent.AbstractExecutorService

        invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • EWMA_ALPHA

        public static double EWMA_ALPHA
    • Method Detail

      • getCurrentCapacity

        public int getCurrentCapacity()
        Returns the current queue capacity
      • getTaskExecutionEWMA

        public double getTaskExecutionEWMA()
        Returns the exponentially weighted moving average of the task execution time
      • getCurrentQueueSize

        public int getCurrentQueueSize()
        Returns the current queue size (operations that are queued)
      • appendThreadPoolExecutorDetails

        protected void appendThreadPoolExecutorDetails​(java.lang.StringBuilder sb)
        Description copied from class: EsThreadPoolExecutor
        Append details about this thread pool to the specified StringBuilder. All details should be appended as key/value pairs in the form "%s = %s, "
        Overrides:
        appendThreadPoolExecutorDetails in class EsThreadPoolExecutor
        Parameters:
        sb - the StringBuilder to append to