Class PriorityExecutor
- java.lang.Object
-
- org.apache.synapse.commons.executors.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 Summary
Constructors Constructor Description PriorityExecutor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
destroy()
Destroy the executor.void
execute(Runnable task, int priority)
Execute a given task with the priority specified.BeforeExecuteHandler
getBeforeExecuteHandler()
Get the handler that is executed before the worker is put in to the queueint
getCore()
Get the core number of threadsString
getFileName()
Get the file used to store this executor configint
getKeepAlive()
Get the keep alive time for threadsint
getMax()
Get the max threadsString
getName()
Get the name of the executorMultiPriorityBlockingQueue<Runnable>
getQueue()
Get the queue.void
init()
Initialize the executor by using the properties.void
setBeforeExecuteHandler(BeforeExecuteHandler beforeExecuteHandler)
Set a handler for execute before putting a worker in to the queues.void
setCore(int core)
Set the core number of threadsvoid
setFileName(String fileName)
Set the file used to store the configvoid
setKeepAlive(int keepAlive)
Set the keep alive time for threadsvoid
setMax(int max)
Set the max number of threadsvoid
setName(String name)
Set the name of the executorvoid
setQueue(MultiPriorityBlockingQueue<Runnable> queue)
Set the queue.
-
-
-
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 executedpriority
- 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
-
setQueue
public void setQueue(MultiPriorityBlockingQueue<Runnable> queue)
Set the queue.- Parameters:
queue
- queue used for handling the priorities
-
getQueue
public MultiPriorityBlockingQueue<Runnable> getQueue()
Get the queue.- Returns:
- queue used for handling multiple priorities
-
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
-
-