Class PriorityExecutor
java.lang.Object
org.apache.synapse.commons.executors.PriorityExecutor
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 -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()Destroy the executor.voidExecute a given task with the priority specified.Get the handler that is executed before the worker is put in to the queueintgetCore()Get the core number of threadsGet the file used to store this executor configintGet the keep alive time for threadsintgetMax()Get the max threadsgetName()Get the name of the executorgetQueue()Get the queue.voidinit()Initialize the executor by using the properties.voidsetBeforeExecuteHandler(BeforeExecuteHandler beforeExecuteHandler) Set a handler for execute before putting a worker in to the queues.voidsetCore(int core) Set the core number of threadsvoidsetFileName(String fileName) Set the file used to store the configvoidsetKeepAlive(int keepAlive) Set the keep alive time for threadsvoidsetMax(int max) Set the max number of threadsvoidSet the name of the executorvoidSet the queue.
-
Constructor Details
-
PriorityExecutor
public PriorityExecutor()
-
-
Method Details
-
execute
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
Set the name of the executor- Parameters:
name- of the executor
-
getName
Get the name of the executor- Returns:
- name of the executor
-
setBeforeExecuteHandler
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
Get the handler that is executed before the worker is put in to the queue- Returns:
- an object of BeforeExecuteHandler
-
setQueue
Set the queue.- Parameters:
queue- queue used for handling the priorities
-
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
Get the file used to store this executor config- Returns:
- file used for storing the config
-
setFileName
Set the file used to store the config- Parameters:
fileName- file name
-