|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ExecutorServiceManager
Strategy to create thread pools.
This manager is pluggable so you can plugin a custom provider, for example if you want to leverage the WorkManager for a JEE server. You may want to just implement a customThreadPoolFactory
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.
For more information about shutting down thread pools see the shutdown(java.util.concurrent.ExecutorService)
and shutdownNow(java.util.concurrent.ExecutorService)
, and getShutdownAwaitTermination()
methods.
Notice the details about using a graceful shutdown at fist, and then falling back to aggressive shutdown in case
of await termination timeout occurred.
ThreadPoolFactory
Method Summary | |
---|---|
boolean |
awaitTermination(ExecutorService executorService,
long shutdownAwaitTermination)
Awaits the termination of the thread pool. |
ThreadPoolProfile |
getDefaultThreadPoolProfile()
Gets the default thread pool profile |
long |
getShutdownAwaitTermination()
Gets the time to wait for thread pools to shutdown orderly, when invoking the ShutdownableService.shutdown() method. |
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. |
Thread |
newThread(String name,
Runnable runnable)
Creates a new daemon thread with the given name. |
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 |
setShutdownAwaitTermination(long timeInMillis)
Sets the time to wait for thread pools to shutdown orderly, when invoking the ShutdownableService.shutdown() method. |
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 (not graceful). |
void |
shutdownGraceful(ExecutorService executorService)
Shutdown the given executor service graceful at first, and then aggressively if the await termination timeout was hit. |
void |
shutdownGraceful(ExecutorService executorService,
long shutdownAwaitTermination)
Shutdown the given executor service graceful at first, and then aggressively if the await termination timeout was hit. |
List<Runnable> |
shutdownNow(ExecutorService executorService)
Shutdown now the given executor service aggressively. |
Methods inherited from interface org.apache.camel.ShutdownableService |
---|
shutdown |
Methods inherited from interface org.apache.camel.Service |
---|
start, stop |
Method Detail |
---|
ThreadPoolFactory getThreadPoolFactory()
ThreadPoolFactory
to use for creating the thread pools.
void setThreadPoolFactory(ThreadPoolFactory threadPoolFactory)
ThreadPoolFactory
to use
threadPoolFactory
- the thread pool factoryString resolveThreadName(String name)
name
- name which is appended to the full thread name
ThreadPoolProfile getThreadPoolProfile(String id)
id
- id of the thread pool profile to get
void 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 pattern
IllegalArgumentException
- if the pattern is invalid.String getThreadNamePattern()
void setShutdownAwaitTermination(long timeInMillis)
ShutdownableService.shutdown()
method.
The default value is 10000 millis.
timeInMillis
- time in millis.long getShutdownAwaitTermination()
ShutdownableService.shutdown()
method.
The default value is 10000 millis.
Thread newThread(String name, Runnable runnable)
name
- name which is appended to the thread namerunnable
- a runnable to be executed by new thread instance
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 name
ScheduledExecutorService 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 name
ExecutorService 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 use
ExecutorService 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 use
ExecutorService 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 size
ExecutorService 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 name
ExecutorService 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 name
ExecutorService 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 size
ScheduledExecutorService 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 size
ScheduledExecutorService 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 name
ScheduledExecutorService 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 use
ScheduledExecutorService 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 use
void shutdown(ExecutorService executorService)
ExecutorService.shutdown()
and return.
executorService
- the executor service to shutdownExecutorService.shutdown()
void shutdownGraceful(ExecutorService executorService)
shutdownNow(java.util.concurrent.ExecutorService)
which
forces a shutdown. The getShutdownAwaitTermination()
is used as timeout value waiting for orderly shutdown to
complete normally, before going aggressively.
executorService
- the executor service to shutdownExecutorService.shutdown()
,
getShutdownAwaitTermination()
void shutdownGraceful(ExecutorService executorService, long shutdownAwaitTermination)
shutdownNow(java.util.concurrent.ExecutorService)
which
forces a shutdown. The parameter shutdownAwaitTermination
is used as timeout value waiting for orderly shutdown to
complete normally, before going aggressively.
executorService
- the executor service to shutdownshutdownAwaitTermination
- timeout in millis to wait for orderly shutdownExecutorService.shutdown()
List<Runnable> shutdownNow(ExecutorService executorService)
ExecutorService.shutdownNow()
and return.
executorService
- the executor service to shutdown now
ExecutorService.shutdownNow()
boolean awaitTermination(ExecutorService executorService, long shutdownAwaitTermination) throws InterruptedException
executorService
- the thread poolshutdownAwaitTermination
- time in millis to use as timeout
InterruptedException
- is thrown if we are interrupted during waiting
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |