org.springframework.core.task.support
Class TaskExecutorAdapter
- java.lang.Object
-
- org.springframework.core.task.support.TaskExecutorAdapter
-
- All Implemented Interfaces:
- Executor, AsyncTaskExecutor, TaskExecutor
public class TaskExecutorAdapter extends Object implements AsyncTaskExecutor
Adapter that takes a JDKjava.util.concurrent.Executor
and exposes a SpringTaskExecutor
for it. Also detects an extendedjava.util.concurrent.ExecutorService
, adapting theAsyncTaskExecutor
interface accordingly.- Since:
- 3.0
- Author:
- Juergen Hoeller
- See Also:
-
Executor
,ExecutorService
,Executors
-
Field Summary
Fields inherited from interface org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
Constructor Summary
Constructors Constructor and Description TaskExecutorAdapter(Executor concurrentExecutor)
Create a new TaskExecutorAdapter, using the given JDK concurrent executor.
Method Summary
Methods Modifier and Type Method and Description void
execute(Runnable task)
Delegates to the specified JDK concurrent executor.void
execute(Runnable task, long startTimeout)
Execute the giventask
.<T> Future<T>
submit(Callable<T> task)
Submit a Callable task for execution, receiving a Future representing that task.Future<?>
submit(Runnable task)
Submit a Runnable task for execution, receiving a Future representing that task.
-
Constructor Detail
TaskExecutorAdapter
public TaskExecutorAdapter(Executor concurrentExecutor)
Create a new TaskExecutorAdapter, using the given JDK concurrent executor.- Parameters:
-
concurrentExecutor
- the JDK concurrent executor to delegate to
Method Detail
execute
public void execute(Runnable task)
Delegates to the specified JDK concurrent executor.- Specified by:
-
execute
in interfaceExecutor
- Specified by:
-
execute
in interfaceTaskExecutor
- Parameters:
-
task
- theRunnable
to execute (nevernull
) - See Also:
-
Executor.execute(Runnable)
execute
public void execute(Runnable task, long startTimeout)
Description copied from interface:AsyncTaskExecutor
Execute the giventask
.- Specified by:
-
execute
in interfaceAsyncTaskExecutor
- Parameters:
-
task
- theRunnable
to 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_IMMEDIATE
orAsyncTaskExecutor.TIMEOUT_INDEFINITE
(the default as used byTaskExecutor.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 anull
result upon completion.- Specified by:
-
submit
in interfaceAsyncTaskExecutor
- Parameters:
-
task
- theRunnable
to execute (nevernull
) - 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 interfaceAsyncTaskExecutor
- Parameters:
-
task
- theCallable
to execute (nevernull
) - Returns:
- a Future representing pending completion of the task