Class PrioritizedEsThreadPoolExecutor

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

    public class PrioritizedEsThreadPoolExecutor
    extends EsThreadPoolExecutor
    A prioritizing executor which uses a priority queue as a work queue. The jobs that will be submitted will be treated as PrioritizedRunnable and/or PrioritizedCallable, those tasks that are not instances of these two will be wrapped and assign a default Priority.NORMAL priority.

    Note, if two tasks have the same priority, the first to arrive will be executed first (FIFO style).

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  PrioritizedEsThreadPoolExecutor.Pending  
      • 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
    • Method Summary

      Modifier and Type Method Description
      protected void afterExecute​(java.lang.Runnable r, java.lang.Throwable t)  
      protected void beforeExecute​(java.lang.Thread t, java.lang.Runnable r)  
      void execute​(java.lang.Runnable command, TimeValue timeout, java.lang.Runnable timeoutCallback)  
      TimeValue getMaxTaskWaitTime()
      Returns the waiting time of the first task in the queue
      int getNumberOfPendingTasks()  
      PrioritizedEsThreadPoolExecutor.Pending[] getPending()  
      protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor​(java.lang.Runnable runnable, T value)  
      protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor​(java.util.concurrent.Callable<T> callable)  
      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, 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, submit, submit, submit
      • Methods inherited from class java.lang.Object

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

      • getNumberOfPendingTasks

        public int getNumberOfPendingTasks()
      • getMaxTaskWaitTime

        public TimeValue getMaxTaskWaitTime()
        Returns the waiting time of the first task in the queue
      • beforeExecute

        protected void beforeExecute​(java.lang.Thread t,
                                     java.lang.Runnable r)
        Overrides:
        beforeExecute in class java.util.concurrent.ThreadPoolExecutor
      • execute

        public void execute​(java.lang.Runnable command,
                            TimeValue timeout,
                            java.lang.Runnable timeoutCallback)
      • newTaskFor

        protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor​(java.lang.Runnable runnable,
                                                                        T value)
        Overrides:
        newTaskFor in class java.util.concurrent.AbstractExecutorService
      • newTaskFor

        protected <T> java.util.concurrent.RunnableFuture<T> newTaskFor​(java.util.concurrent.Callable<T> callable)
        Overrides:
        newTaskFor in class java.util.concurrent.AbstractExecutorService