Class PriorityExecutor


  • public class PriorityExecutor
    extends Object
    This is the class used for executing the tasks with a given priority. It is backed by a BlockingQueue and a ThreadPoolExecutor. The BlockingQueue is a custom implementation which has multiple internal queues for handling separate priorities.
    • Constructor Detail

      • PriorityExecutor

        public PriorityExecutor()
    • Method Detail

      • execute

        public void execute​(Runnable task,
                            int priority)
        Execute a given task with the priority specified. If the task throws an exception, it will be captured and logged to prevent the threads from dying.
        Parameters:
        task - task to be executed
        priority - priority of the task
      • init

        public void init()
        Initialize the executor by using the properties. Create the queues and ThreadPool executor.
      • destroy

        public void destroy()
        Destroy the executor. Stop all the threads running.
      • setName

        public void setName​(String name)
        Set the name of the executor
        Parameters:
        name - of the executor
      • getName

        public String getName()
        Get the name of the executor
        Returns:
        name of the executor
      • setBeforeExecuteHandler

        public void setBeforeExecuteHandler​(BeforeExecuteHandler beforeExecuteHandler)
        Set a handler for execute before putting a worker in to the queues. User can set some properties to the worker at this point. This allows users to get more control over the queue selection algorithm. This is an optional configuration.
        Parameters:
        beforeExecuteHandler - an object implementing the BeforeExecuteHandler
      • getBeforeExecuteHandler

        public BeforeExecuteHandler getBeforeExecuteHandler()
        Get the handler that is executed before the worker is put in to the queue
        Returns:
        an object of BeforeExecuteHandler
      • getCore

        public int getCore()
        Get the core number of threads
        Returns:
        core number of threads
      • getMax

        public int getMax()
        Get the max threads
        Returns:
        max thread
      • getKeepAlive

        public int getKeepAlive()
        Get the keep alive time for threads
        Returns:
        keep alive time for threads
      • setCore

        public void setCore​(int core)
        Set the core number of threads
        Parameters:
        core - core number of threads
      • setMax

        public void setMax​(int max)
        Set the max number of threads
        Parameters:
        max - max threads
      • setKeepAlive

        public void setKeepAlive​(int keepAlive)
        Set the keep alive time for threads
        Parameters:
        keepAlive - keep alive threads
      • getFileName

        public String getFileName()
        Get the file used to store this executor config
        Returns:
        file used for storing the config
      • setFileName

        public void setFileName​(String fileName)
        Set the file used to store the config
        Parameters:
        fileName - file name