Class SimpleThreadPoolTaskExecutor
- java.lang.Object
- org.quartz.simpl.SimpleThreadPool
- org.springframework.scheduling.quartz.SimpleThreadPoolTaskExecutor
- All Implemented Interfaces:
Executor,ThreadPool,DisposableBean,InitializingBean,AsyncListenableTaskExecutor,AsyncTaskExecutor,TaskExecutor,SchedulingTaskExecutor
public class SimpleThreadPoolTaskExecutor extends SimpleThreadPool implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, InitializingBean, DisposableBean
Subclass of Quartz's SimpleThreadPool that implements Spring'sTaskExecutorinterface and listens to Spring lifecycle callbacks.Can be shared between a Quartz Scheduler (specified as "taskExecutor") and other TaskExecutor users, or even used completely independent of a Quartz Scheduler (as plain TaskExecutor backend).
- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
SimpleThreadPool,TaskExecutor,SchedulerFactoryBean.setTaskExecutor(java.util.concurrent.Executor)
Field Summary
Fields inherited from interface org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
Constructor Summary
Constructors Constructor Description SimpleThreadPoolTaskExecutor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Invoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.voiddestroy()Invoked by the containingBeanFactoryon destruction of a bean.voidexecute(Runnable task)Execute the giventask.voidexecute(Runnable task, long startTimeout)Execute the giventask.booleanprefersShortLivedTasks()This task executor prefers short-lived work units.voidsetWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)Set whether to wait for running jobs to complete on shutdown.Future<?>submit(Runnable task)Submit a Runnable task for execution, receiving a Future representing that task.<T> Future<T>submit(Callable<T> task)Submit a Callable task for execution, receiving a Future representing that task.ListenableFuture<?>submitListenable(Runnable task)Submit aRunnabletask for execution, receiving aListenableFuturerepresenting that task.<T> ListenableFuture<T>submitListenable(Callable<T> task)Submit aCallabletask for execution, receiving aListenableFuturerepresenting that task.Methods inherited from class org.quartz.simpl.SimpleThreadPool
blockForAvailableThreads, clearFromBusyWorkersList, createWorkerThreads, getLog, getPoolSize, getThreadCount, getThreadNamePrefix, getThreadPriority, initialize, isMakeThreadsDaemons, isThreadsInheritContextClassLoaderOfInitializingThread, isThreadsInheritGroupOfInitializingThread, makeAvailable, runInThread, setInstanceId, setInstanceName, setMakeThreadsDaemons, setThreadCount, setThreadNamePrefix, setThreadPriority, setThreadsInheritContextClassLoaderOfInitializingThread, setThreadsInheritGroupOfInitializingThread, shutdown, shutdown
Constructor Detail
SimpleThreadPoolTaskExecutor
public SimpleThreadPoolTaskExecutor()
Method Detail
setWaitForJobsToCompleteOnShutdown
public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)
Set whether to wait for running jobs to complete on shutdown. Default is "false".- See Also:
SimpleThreadPool.shutdown(boolean)
afterPropertiesSet
public void afterPropertiesSet() throws SchedulerConfigException
Description copied from interface:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSetin interfaceInitializingBean- Throws:
SchedulerConfigException
execute
public void execute(Runnable task)
Description copied from interface:TaskExecutorExecute the giventask.The call might return immediately if the implementation uses an asynchronous execution strategy, or might block in the case of synchronous execution.
- Specified by:
executein interfaceExecutor- Specified by:
executein interfaceTaskExecutor- Parameters:
task- theRunnableto execute (nevernull)
execute
public void execute(Runnable task, long startTimeout)
Description copied from interface:AsyncTaskExecutorExecute the giventask.- Specified by:
executein interfaceAsyncTaskExecutor- Parameters:
task- theRunnableto execute (nevernull)startTimeout- the time duration (milliseconds) within which the task is supposed to start. This is intended as a hint to the executor, allowing for preferred handling of immediate tasks. Typical values areAsyncTaskExecutor.TIMEOUT_IMMEDIATEorAsyncTaskExecutor.TIMEOUT_INDEFINITE(the default as used byTaskExecutor.execute(Runnable)).
submit
public Future<?> submit(Runnable task)
Description copied from interface:AsyncTaskExecutorSubmit a Runnable task for execution, receiving a Future representing that task. The Future will return anullresult upon completion.- Specified by:
submitin interfaceAsyncTaskExecutor- Parameters:
task- theRunnableto execute (nevernull)- Returns:
- a Future representing pending completion of the task
submit
public <T> Future<T> submit(Callable<T> task)
Description copied from interface:AsyncTaskExecutorSubmit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.- Specified by:
submitin interfaceAsyncTaskExecutor- Parameters:
task- theCallableto execute (nevernull)- Returns:
- a Future representing pending completion of the task
submitListenable
public ListenableFuture<?> submitListenable(Runnable task)
Description copied from interface:AsyncListenableTaskExecutorSubmit aRunnabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return anullresult upon completion.- Specified by:
submitListenablein interfaceAsyncListenableTaskExecutor- Parameters:
task- theRunnableto execute (nevernull)- Returns:
- a
ListenableFuturerepresenting pending completion of the task
submitListenable
public <T> ListenableFuture<T> submitListenable(Callable<T> task)
Description copied from interface:AsyncListenableTaskExecutorSubmit aCallabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return the Callable's result upon completion.- Specified by:
submitListenablein interfaceAsyncListenableTaskExecutor- Parameters:
task- theCallableto execute (nevernull)- Returns:
- a
ListenableFuturerepresenting pending completion of the task
prefersShortLivedTasks
public boolean prefersShortLivedTasks()
This task executor prefers short-lived work units.- Specified by:
prefersShortLivedTasksin interfaceSchedulingTaskExecutor- Returns:
trueif thisTaskExecutorprefers short-lived tasks
destroy
public void destroy()
Description copied from interface:DisposableBeanInvoked by the containingBeanFactoryon destruction of a bean.- Specified by:
destroyin interfaceDisposableBean