public interface ExecutorServiceManager extends ShutdownableService
ThreadPoolFactory
and rely on the
DefaultExecutorServiceManager
, if that is sufficient. The ThreadPoolFactory
is always used for creating the actual thread pools. You can implement a custom ThreadPoolFactory
to leverage the WorkManager for a JEE server.
The ThreadPoolFactory
has pure JDK API, where as this ExecutorServiceManager
has Camel API
concepts such as ThreadPoolProfile
. Therefore it may be easier to only implement a custom
ThreadPoolFactory
.
This manager has fine grained methods for creating various thread pools, however custom strategies
do not have to exactly create those kind of pools. Feel free to return a shared or different kind of pool.
If you use the newXXX methods to create thread pools, then Camel will by default take care of
shutting down those created pools when CamelContext
is shutting down.
ThreadPoolFactory
Modifier and Type | Method and Description |
---|---|
ThreadPoolProfile |
getDefaultThreadPoolProfile()
Gets the default thread pool profile
|
String |
getThreadNamePattern()
Gets the thread name patter to use
|
ThreadPoolFactory |
getThreadPoolFactory()
Gets the
ThreadPoolFactory to use for creating the thread pools. |
ThreadPoolProfile |
getThreadPoolProfile(String id)
Gets the thread pool profile by the given id
|
ExecutorService |
newCachedThreadPool(Object source,
String name)
Creates a new cached thread pool.
|
ScheduledExecutorService |
newDefaultScheduledThreadPool(Object source,
String name)
Creates a new scheduled thread pool using the default thread pool profile.
|
ExecutorService |
newDefaultThreadPool(Object source,
String name)
Creates a new thread pool using the default thread pool profile.
|
ExecutorService |
newFixedThreadPool(Object source,
String name,
int poolSize)
Creates a new fixed thread pool.
|
ScheduledExecutorService |
newScheduledThreadPool(Object source,
String name,
int poolSize)
Creates a new scheduled thread pool.
|
ScheduledExecutorService |
newScheduledThreadPool(Object source,
String name,
String profileId)
Creates a new scheduled thread pool using a profile id
|
ScheduledExecutorService |
newScheduledThreadPool(Object source,
String name,
ThreadPoolProfile profile)
Creates a new scheduled thread pool using a profile
|
ExecutorService |
newSingleThreadExecutor(Object source,
String name)
Creates a new single-threaded thread pool.
|
ScheduledExecutorService |
newSingleThreadScheduledExecutor(Object source,
String name)
Creates a new single-threaded thread pool.
|
ExecutorService |
newThreadPool(Object source,
String name,
int poolSize,
int maxPoolSize)
Creates a new thread pool.
|
ExecutorService |
newThreadPool(Object source,
String name,
String profileId)
Creates a new thread pool using using the given profile id
|
ExecutorService |
newThreadPool(Object source,
String name,
ThreadPoolProfile profile)
Creates a new thread pool using the given profile
|
void |
registerThreadPoolProfile(ThreadPoolProfile profile)
Registers the given thread pool profile
|
String |
resolveThreadName(String name)
Creates a full thread name
|
void |
setDefaultThreadPoolProfile(ThreadPoolProfile defaultThreadPoolProfile)
Sets the default thread pool profile
|
void |
setThreadNamePattern(String pattern)
Sets the thread name pattern used for creating the full thread name.
|
void |
setThreadPoolFactory(ThreadPoolFactory threadPoolFactory)
Sets a custom
ThreadPoolFactory to use |
void |
shutdown(ExecutorService executorService)
Shutdown the given executor service.
|
List<Runnable> |
shutdownNow(ExecutorService executorService)
Shutdown now the given executor service.
|
shutdown
ThreadPoolFactory getThreadPoolFactory()
ThreadPoolFactory
to use for creating the thread pools.void setThreadPoolFactory(ThreadPoolFactory threadPoolFactory)
ThreadPoolFactory
to usethreadPoolFactory
- the thread pool factoryString resolveThreadName(String name)
name
- name which is appended to the full thread nameThreadPoolProfile getThreadPoolProfile(String id)
id
- id of the thread pool profile to getvoid registerThreadPoolProfile(ThreadPoolProfile profile)
profile
- the profilevoid setDefaultThreadPoolProfile(ThreadPoolProfile defaultThreadPoolProfile)
defaultThreadPoolProfile
- the new default thread pool profileThreadPoolProfile getDefaultThreadPoolProfile()
void setThreadNamePattern(String pattern) throws IllegalArgumentException
CamelContext
pattern
- the patternIllegalArgumentException
- if the pattern is invalid.String getThreadNamePattern()
ExecutorService newDefaultThreadPool(Object source, String name)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameScheduledExecutorService newDefaultScheduledThreadPool(Object source, String name)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameExecutorService newThreadPool(Object source, String name, ThreadPoolProfile profile)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameprofile
- the profile with the thread pool settings to useExecutorService newThreadPool(Object source, String name, String profileId)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameprofileId
- the id of the profile with the thread pool settings to useExecutorService newThreadPool(Object source, String name, int poolSize, int maxPoolSize)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread namepoolSize
- the core pool sizemaxPoolSize
- the maximum pool sizeExecutorService newSingleThreadExecutor(Object source, String name)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameExecutorService newCachedThreadPool(Object source, String name)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameExecutorService newFixedThreadPool(Object source, String name, int poolSize)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread namepoolSize
- the core pool sizeScheduledExecutorService newScheduledThreadPool(Object source, String name, int poolSize)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread namepoolSize
- the core pool sizeScheduledExecutorService newSingleThreadScheduledExecutor(Object source, String name)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameScheduledExecutorService newScheduledThreadPool(Object source, String name, ThreadPoolProfile profile)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameprofile
- the profile with the thread pool settings to useScheduledExecutorService newScheduledThreadPool(Object source, String name, String profileId)
source
- the source object, usually it should be this passed in as parametername
- name which is appended to the thread nameprofileId
- the id of the profile with the thread pool settings to usevoid shutdown(ExecutorService executorService)
executorService
- the executor service to shutdownExecutorService.shutdown()
List<Runnable> shutdownNow(ExecutorService executorService)
executorService
- the executor service to shutdown nowExecutorService.shutdownNow()
Apache CAMEL