类 TaskExecutorAdapter
- java.lang.Object
- org.springframework.core.task.support.TaskExecutorAdapter
public class TaskExecutorAdapter extends Object implements AsyncListenableTaskExecutor
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.- 从以下版本开始:
- 3.0
- 作者:
- Juergen Hoeller
- 另请参阅:
Executor
,ExecutorService
,Executors
字段概要
从接口继承的字段 org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
构造器概要
构造器 构造器 说明 TaskExecutorAdapter(Executor concurrentExecutor)
Create a new TaskExecutorAdapter, using the given JDK concurrent executor.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected void
doExecute(Executor concurrentExecutor, TaskDecorator taskDecorator, Runnable runnable)
Actually execute the givenRunnable
(which may be a user-supplied task or a wrapper around a user-supplied task) with the given executor.void
execute(Runnable task)
Delegates to the specified JDK concurrent executor.void
execute(Runnable task, long startTimeout)
Execute the giventask
.void
setTaskDecorator(TaskDecorator taskDecorator)
Specify a customTaskDecorator
to be applied to anyRunnable
about to be executed.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 aRunnable
task for execution, receiving aListenableFuture
representing that task.<T> ListenableFuture<T>
submitListenable(Callable<T> task)
Submit aCallable
task for execution, receiving aListenableFuture
representing that task.
构造器详细资料
TaskExecutorAdapter
public TaskExecutorAdapter(Executor concurrentExecutor)
Create a new TaskExecutorAdapter, using the given JDK concurrent executor.- 参数:
concurrentExecutor
- the JDK concurrent executor to delegate to
方法详细资料
setTaskDecorator
public final void setTaskDecorator(TaskDecorator taskDecorator)
Specify a customTaskDecorator
to be applied to anyRunnable
about to be executed.Note that such a decorator is not necessarily being applied to the user-supplied
Runnable
/Callable
but 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.
NOTE: Exception handling in
TaskDecorator
implementations is limited to plainRunnable
execution viaexecute
calls. In case of#submit
calls, the exposedRunnable
will be aFutureTask
which does not propagate any exceptions; you might have to cast it and callFuture#get
to evaluate exceptions.- 从以下版本开始:
- 4.3
execute
public void execute(Runnable task)
Delegates to the specified JDK concurrent executor.- 指定者:
execute
在接口中Executor
- 指定者:
execute
在接口中TaskExecutor
- 参数:
task
- theRunnable
to execute (nevernull
)- 另请参阅:
Executor.execute(Runnable)
execute
public void execute(Runnable task, long startTimeout)
从接口复制的说明:AsyncTaskExecutor
Execute the giventask
.- 指定者:
execute
在接口中AsyncTaskExecutor
- 参数:
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)
从接口复制的说明:AsyncTaskExecutor
Submit a Runnable task for execution, receiving a Future representing that task. The Future will return anull
result upon completion.- 指定者:
submit
在接口中AsyncTaskExecutor
- 参数:
task
- theRunnable
to execute (nevernull
)- 返回:
- a Future representing pending completion of the task
submit
public <T> Future<T> submit(Callable<T> task)
从接口复制的说明:AsyncTaskExecutor
Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.- 指定者:
submit
在接口中AsyncTaskExecutor
- 参数:
task
- theCallable
to execute (nevernull
)- 返回:
- a Future representing pending completion of the task
submitListenable
public ListenableFuture<?> submitListenable(Runnable task)
从接口复制的说明:AsyncListenableTaskExecutor
Submit aRunnable
task for execution, receiving aListenableFuture
representing that task. The Future will return anull
result upon completion.- 指定者:
submitListenable
在接口中AsyncListenableTaskExecutor
- 参数:
task
- theRunnable
to execute (nevernull
)- 返回:
- a
ListenableFuture
representing pending completion of the task
submitListenable
public <T> ListenableFuture<T> submitListenable(Callable<T> task)
从接口复制的说明:AsyncListenableTaskExecutor
Submit aCallable
task for execution, receiving aListenableFuture
representing that task. The Future will return the Callable's result upon completion.- 指定者:
submitListenable
在接口中AsyncListenableTaskExecutor
- 参数:
task
- theCallable
to execute (nevernull
)- 返回:
- a
ListenableFuture
representing pending completion of the task
doExecute
protected void doExecute(Executor concurrentExecutor, TaskDecorator taskDecorator, Runnable runnable) throws RejectedExecutionException
Actually execute the givenRunnable
(which may be a user-supplied task or a wrapper around a user-supplied task) with the given executor.- 参数:
concurrentExecutor
- the underlying JDK concurrent executor to delegate totaskDecorator
- the specified decorator to be applied, if anyrunnable
- the runnable to execute- 抛出:
RejectedExecutionException
- if the given runnable cannot be accepted- 从以下版本开始:
- 4.3