Class ConcurrentTaskExecutor
- All Implemented Interfaces:
- Executor,- AsyncListenableTaskExecutor,- AsyncTaskExecutor,- TaskExecutor,- SchedulingTaskExecutor
- Direct Known Subclasses:
- ConcurrentTaskScheduler,- DefaultManagedTaskExecutor
java.util.concurrent.Executor and exposes
 a Spring TaskExecutor for it.
 Also detects an extended java.util.concurrent.ExecutorService, adapting
 the AsyncTaskExecutor interface accordingly.
 Autodetects a JSR-236 ManagedExecutorService
 in order to expose ManagedTask adapters for it,
 exposing a long-running hint based on SchedulingAwareRunnable and an identity
 name based on the given Runnable/Callable's toString(). For JSR-236 style
 lookup in a Jakarta EE environment, consider using DefaultManagedTaskExecutor.
 
Note that there is a pre-built ThreadPoolTaskExecutor that allows
 for defining a ThreadPoolExecutor in bean style,
 exposing it as a Spring TaskExecutor directly.
 This is a convenient alternative to a raw ThreadPoolExecutor definition with
 a separate definition of the present adapter class.
- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classDelegate that wraps a given Runnable/Callable with a JSR-236 ManagedTask, exposing a long-running hint based onSchedulingAwareRunnableand a given identity name.
- 
Field SummaryFields inherited from interface org.springframework.core.task.AsyncTaskExecutorTIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new ConcurrentTaskExecutor, using a single thread executor as default.ConcurrentTaskExecutor(Executor executor) Create a new ConcurrentTaskExecutor, using the givenExecutor.
- 
Method SummaryModifier and TypeMethodDescriptionvoidExecute the giventask.voidDeprecated.final ExecutorReturn theExecutorthat this adapter delegates to.final voidsetConcurrentExecutor(Executor executor) Specify theExecutorto delegate to.final voidsetTaskDecorator(TaskDecorator taskDecorator) Specify a customTaskDecoratorto be applied to anyRunnableabout to be executed.Future<?>Submit a Runnable task for execution, receiving a Future representing that task.<T> Future<T>Submit a Callable task for execution, receiving a Future representing that task.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 java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.core.task.AsyncTaskExecutorsubmitCompletable, submitCompletableMethods inherited from interface org.springframework.scheduling.SchedulingTaskExecutorprefersShortLivedTasks
- 
Constructor Details- 
ConcurrentTaskExecutorpublic ConcurrentTaskExecutor()Create a new ConcurrentTaskExecutor, using a single thread executor as default.- See Also:
 
- 
ConcurrentTaskExecutorCreate a new ConcurrentTaskExecutor, using the givenExecutor.Autodetects a JSR-236 ManagedExecutorServicein order to exposeManagedTaskadapters for it.- Parameters:
- executor- the- Executorto delegate to
 
 
- 
- 
Method Details- 
setConcurrentExecutorSpecify theExecutorto delegate to.Autodetects a JSR-236 ManagedExecutorServicein order to exposeManagedTaskadapters for it.
- 
getConcurrentExecutorReturn theExecutorthat this adapter delegates to.
- 
setTaskDecoratorSpecify a customTaskDecoratorto be applied to anyRunnableabout to be executed.Note that such a decorator is not necessarily being applied to the user-supplied Runnable/Callablebut rather to the actual execution callback (which may be a wrapper around the user-supplied task).The primary use case is to set some execution context around the task's invocation, or to provide some monitoring/statistics for task execution. - Since:
- 4.3
 
- 
executeDescription 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 interface- Executor
- Specified by:
- executein interface- TaskExecutor
- Parameters:
- task- the- Runnableto execute (never- null)
 
- 
executeDeprecated.Description copied from interface:AsyncTaskExecutorExecute the giventask.- Specified by:
- executein interface- AsyncTaskExecutor
- Parameters:
- task- the- Runnableto 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_IMMEDIATEor- AsyncTaskExecutor.TIMEOUT_INDEFINITE(the default as used by- TaskExecutor.execute(Runnable)).
- See Also:
 
- 
submitDescription 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 interface- AsyncTaskExecutor
- Parameters:
- task- the- Runnableto execute (never- null)
- Returns:
- a Future representing pending completion of the task
 
- 
submitDescription 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 interface- AsyncTaskExecutor
- Parameters:
- task- the- Callableto execute (never- null)
- Returns:
- a Future representing pending completion of the task
 
- 
submitListenableDescription copied from interface:AsyncListenableTaskExecutorSubmit aRunnabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return anullresult upon completion.- Specified by:
- submitListenablein interface- AsyncListenableTaskExecutor
- Parameters:
- task- the- Runnableto execute (never- null)
- Returns:
- a ListenableFuturerepresenting pending completion of the task
 
- 
submitListenableDescription copied from interface:AsyncListenableTaskExecutorSubmit aCallabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return the Callable's result upon completion.- Specified by:
- submitListenablein interface- AsyncListenableTaskExecutor
- Parameters:
- task- the- Callableto execute (never- null)
- Returns:
- a ListenableFuturerepresenting pending completion of the task
 
 
-