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.

Constructor Detail

ExecutorConfigurationSupport

Method Detail

setThreadFactory

Set the ThreadFactory to use for the ExecutorService's thread pool.
Default is the underlying ExecutorService's default thread factory.

In a Java EE 7 or other managed environment with JSR-236 support,
consider specifying a JNDI-located ManagedThreadFactory: by default,
to be found at "java:comp/DefaultManagedThreadFactory".
Use the "jee:jndi-lookup" namespace element in XML or the programmatic
JndiLocatorDelegate for convenient lookup.
Alternatively, consider using Spring's DefaultManagedAwareThreadFactory
with its fallback to local threads in case of no managed thread factory found.

setWaitForTasksToCompleteOnShutdown

Set whether to wait for scheduled tasks to complete on shutdown,
not interrupting running tasks and executing all tasks in the queue.

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.

See Also:

ExecutorService.shutdown(),
ExecutorService.shutdownNow()

setAwaitTerminationSeconds

public 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. This is particularly
useful if your remaining tasks are likely to need access to other resources
that are also managed by the container.

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.

name - 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.