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's TaskExecutor interface 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:
  • Constructor Details

    • SimpleThreadPoolTaskExecutor

      public SimpleThreadPoolTaskExecutor()
  • Method Details

    • setWaitForJobsToCompleteOnShutdown

      public void setWaitForJobsToCompleteOnShutdown(boolean waitForJobsToCompleteOnShutdown)
      Set whether to wait for running jobs to complete on shutdown. Default is "false".
      See Also:
    • afterPropertiesSet

      public void afterPropertiesSet() throws SchedulerConfigException
      Description copied from interface: InitializingBean
      Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

      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:
      afterPropertiesSet in interface InitializingBean
      Throws:
      SchedulerConfigException
    • execute

      public void execute(Runnable task)
      Description copied from interface: TaskExecutor
      Execute the given task.

      The call might return immediately if the implementation uses an asynchronous execution strategy, or might block in the case of synchronous execution.

      Specified by:
      execute in interface Executor
      Specified by:
      execute in interface TaskExecutor
      Parameters:
      task - the Runnable to execute (never null)
    • execute

      public void execute(Runnable task, long startTimeout)
      Description copied from interface: AsyncTaskExecutor
      Execute the given task.
      Specified by:
      execute in interface AsyncTaskExecutor
      Parameters:
      task - the Runnable to execute (never null)
      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 are AsyncTaskExecutor.TIMEOUT_IMMEDIATE or AsyncTaskExecutor.TIMEOUT_INDEFINITE (the default as used by TaskExecutor.execute(Runnable)).
    • submit

      public Future<?> submit(Runnable task)
      Description copied from interface: AsyncTaskExecutor
      Submit a Runnable task for execution, receiving a Future representing that task. The Future will return a null result upon completion.
      Specified by:
      submit in interface AsyncTaskExecutor
      Parameters:
      task - the Runnable to execute (never null)
      Returns:
      a Future representing pending completion of the task
    • submit

      public <T> Future<T> submit(Callable<T> task)
      Description copied from interface: AsyncTaskExecutor
      Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.
      Specified by:
      submit in interface AsyncTaskExecutor
      Parameters:
      task - the Callable to execute (never null)
      Returns:
      a Future representing pending completion of the task
    • submitListenable

      public ListenableFuture<?> submitListenable(Runnable task)
      Description copied from interface: AsyncListenableTaskExecutor
      Submit a Runnable task for execution, receiving a ListenableFuture representing that task. The Future will return a null result upon completion.
      Specified by:
      submitListenable in interface AsyncListenableTaskExecutor
      Parameters:
      task - the Runnable to execute (never null)
      Returns:
      a ListenableFuture representing pending completion of the task
    • submitListenable

      public <T> ListenableFuture<T> submitListenable(Callable<T> task)
      Description copied from interface: AsyncListenableTaskExecutor
      Submit a Callable task for execution, receiving a ListenableFuture representing that task. The Future will return the Callable's result upon completion.
      Specified by:
      submitListenable in interface AsyncListenableTaskExecutor
      Parameters:
      task - the Callable to execute (never null)
      Returns:
      a ListenableFuture representing pending completion of the task
    • destroy

      public void destroy()
      Description copied from interface: DisposableBean
      Invoked by the containing BeanFactory on destruction of a bean.
      Specified by:
      destroy in interface DisposableBean