Package org.springframework.core.task
Interface AsyncTaskExecutor
- All Superinterfaces:
Executor
,TaskExecutor
- All Known Subinterfaces:
AsyncListenableTaskExecutor
,SchedulingTaskExecutor
- All Known Implementing Classes:
ConcurrentTaskExecutor
,ConcurrentTaskScheduler
,DefaultManagedTaskExecutor
,DefaultManagedTaskScheduler
,GlassFishWorkManagerTaskExecutor
,JBossWorkManagerTaskExecutor
,SimpleAsyncTaskExecutor
,SimpleThreadPoolTaskExecutor
,TaskExecutorAdapter
,ThreadPoolTaskExecutor
,ThreadPoolTaskScheduler
,WorkManagerTaskExecutor
,WorkManagerTaskExecutor
public interface AsyncTaskExecutor extends TaskExecutor
Extended interface for asynchronousTaskExecutor
implementations, offering an overloadedexecute(Runnable, long)
variant with a start timeout parameter as well support forCallable
.Note: The
Executors
class includes a set of methods that can convert some other common closure-like objects, for example,PrivilegedAction
toCallable
before executing them.Implementing this interface also indicates that the
TaskExecutor.execute(Runnable)
method will not execute its Runnable in the caller's thread but rather asynchronously in some other thread.- Since:
- 2.0.3
- Author:
- Juergen Hoeller
- See Also:
SimpleAsyncTaskExecutor
,SchedulingTaskExecutor
,Callable
,Executors
Field Summary
Fields Modifier and Type Field Description static long
TIMEOUT_IMMEDIATE
Constant that indicates immediate executionstatic long
TIMEOUT_INDEFINITE
Constant that indicates no time limit
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
execute(Runnable task, long startTimeout)
Execute the giventask
.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.Methods inherited from interface org.springframework.core.task.TaskExecutor
execute
Field Detail
TIMEOUT_IMMEDIATE
static final long TIMEOUT_IMMEDIATE
Constant that indicates immediate execution- See Also:
- Constant Field Values
TIMEOUT_INDEFINITE
static final long TIMEOUT_INDEFINITE
Constant that indicates no time limit- See Also:
- Constant Field Values
Method Detail
execute
void execute(Runnable task, long startTimeout)
Execute the giventask
.- 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 areTIMEOUT_IMMEDIATE
orTIMEOUT_INDEFINITE
(the default as used byTaskExecutor.execute(Runnable)
).- Throws:
TaskTimeoutException
- in case of the task being rejected because of the timeout (i.e. it cannot be started in time)TaskRejectedException
- if the given task was not accepted
submit
Future<?> submit(Runnable task)
Submit a Runnable task for execution, receiving a Future representing that task. The Future will return anull
result upon completion.- Parameters:
task
- theRunnable
to execute (nevernull
)- Returns:
- a Future representing pending completion of the task
- Throws:
TaskRejectedException
- if the given task was not accepted- Since:
- 3.0
submit
<T> Future<T> submit(Callable<T> task)
Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.- Parameters:
task
- theCallable
to execute (nevernull
)- Returns:
- a Future representing pending completion of the task
- Throws:
TaskRejectedException
- if the given task was not accepted- Since:
- 3.0