public abstract class ExecutorConfigurationSupport extends CustomizableThreadFactory implements BeanNameAware, InitializingBean, DisposableBean
java.util.concurrent.ExecutorService
 (typically a ThreadPoolExecutor).
 Defines common configuration settings and common lifecycle handling.ExecutorService, 
Executors, 
ThreadPoolExecutor, 
Serialized Form| Constructor and Description | 
|---|
| ExecutorConfigurationSupport() | 
| Modifier and Type | Method and Description | 
|---|---|
| void | afterPropertiesSet()Calls  initialize()after the container applied all property values. | 
| void | destroy()Calls  shutdownwhen the BeanFactory destroys
 the task executor instance. | 
| void | initialize()Set up the ExecutorService. | 
| protected abstract ExecutorService | initializeExecutor(ThreadFactory threadFactory,
                  RejectedExecutionHandler rejectedExecutionHandler)Create the target  ExecutorServiceinstance. | 
| void | setAwaitTerminationSeconds(int awaitTerminationSeconds)Set the maximum number of seconds that this executor is supposed to block
 on shutdown in order to wait for remaining tasks to complete their execution
 before the rest of the container continues to shut down. | 
| void | setBeanName(String name)Set the name of the bean in the bean factory that created this bean. | 
| void | setRejectedExecutionHandler(RejectedExecutionHandler rejectedExecutionHandler)Set the RejectedExecutionHandler to use for the ThreadPoolExecutor. | 
| void | setThreadFactory(ThreadFactory threadFactory)Set the ThreadFactory to use for the ThreadPoolExecutor's thread pool. | 
| void | setThreadNamePrefix(String threadNamePrefix)Specify the prefix to use for the names of newly created threads. | 
| void | setWaitForTasksToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)Set whether to wait for scheduled tasks to complete on shutdown,
 not interrupting running tasks and executing all tasks in the queue. | 
| void | shutdown()Perform a shutdown on the ThreadPoolExecutor. | 
newThreadcreateThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriorityprotected final Log logger
public void setThreadFactory(ThreadFactory threadFactory)
Executors.defaultThreadFactory()public void setThreadNamePrefix(String threadNamePrefix)
CustomizableThreadCreatorsetThreadNamePrefix in class CustomizableThreadCreatorpublic void setRejectedExecutionHandler(RejectedExecutionHandler rejectedExecutionHandler)
ThreadPoolExecutor.AbortPolicypublic void setWaitForTasksToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)
Default is "false", shutting down immediately through interrupting ongoing tasks and clearing the queue. Switch this flag to "true" if you prefer fully completed tasks at the expense of a longer shutdown phase.
Note that Spring's container shutdown continues while ongoing tasks
 are being completed. If you want this executor to block and wait for the
 termination of tasks before the rest of the container continues to shut
 down - e.g. in order to keep up other resources that your tasks may need -,
 set the "awaitTerminationSeconds"
 property instead of or in addition to this property.
public void setAwaitTerminationSeconds(int awaitTerminationSeconds)
By default, this executor won't wait for the termination of tasks at all.
 It will either shut down immediately, interrupting ongoing tasks and clearing
 the remaining task queue - or, if the
 "waitForTasksToCompleteOnShutdown"
 flag has been set to true, it will continue to fully execute all
 ongoing tasks as well as all remaining tasks in the queue, in parallel to
 the rest of the container shutting down.
 
In either case, if you specify an await-termination period using this property,
 this executor will wait for the given time (max) for the termination of tasks.
 As a rule of thumb, specify a significantly higher timeout here if you set
 "waitForTasksToCompleteOnShutdown" to true at the same time,
 since all remaining tasks in the queue will still get executed - in contrast
 to the default shutdown behavior where it's just about waiting for currently
 executing tasks that aren't reacting to thread interruption.
public void setBeanName(String name)
BeanNameAwareInvoked after population of normal bean properties but before an
 init callback such as InitializingBean.afterPropertiesSet()
 or a custom init-method.
setBeanName in interface BeanNameAwarename - the name of the bean in the factory.
 Note that this name is the actual bean name used in the factory, which may
 differ from the originally specified name: in particular for inner bean
 names, the actual bean name might have been made unique through appending
 "#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String)
 method to extract the original bean name (without suffix), if desired.public void afterPropertiesSet()
initialize() after the container applied all property values.afterPropertiesSet in interface InitializingBeaninitialize()public void initialize()
protected abstract ExecutorService initializeExecutor(ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler)
ExecutorService instance.
 Called by afterPropertiesSet.threadFactory - the ThreadFactory to userejectedExecutionHandler - the RejectedExecutionHandler to useafterPropertiesSet()public void destroy()
shutdown when the BeanFactory destroys
 the task executor instance.destroy in interface DisposableBeanshutdown()public void shutdown()