类 ConcurrentTaskExecutor
- java.lang.Object
- org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
- 所有已实现的接口:
Executor,AsyncListenableTaskExecutor,AsyncTaskExecutor,TaskExecutor,SchedulingTaskExecutor
public class ConcurrentTaskExecutor extends Object implements AsyncListenableTaskExecutor, SchedulingTaskExecutor
Adapter that takes ajava.util.concurrent.Executorand exposes a SpringTaskExecutorfor it. Also detects an extendedjava.util.concurrent.ExecutorService, adapting theAsyncTaskExecutorinterface accordingly.Autodetects a JSR-236
ManagedExecutorServicein order to exposeManagedTaskadapters for it, exposing a long-running hint based onSchedulingAwareRunnableand an identity name based on the given Runnable/Callable'stoString(). For JSR-236 style lookup in a Java EE 7 environment, consider usingDefaultManagedTaskExecutor.Note that there is a pre-built
ThreadPoolTaskExecutorthat allows for defining aThreadPoolExecutorin bean style, exposing it as a SpringTaskExecutordirectly. This is a convenient alternative to a raw ThreadPoolExecutor definition with a separate definition of the present adapter class.- 从以下版本开始:
- 2.0
- 作者:
- Juergen Hoeller
- 另请参阅:
Executor,ExecutorService,ThreadPoolExecutor,Executors,DefaultManagedTaskExecutor,ThreadPoolTaskExecutor
嵌套类概要
嵌套类 修饰符和类型 类 说明 protected static classConcurrentTaskExecutor.ManagedTaskBuilderDelegate that wraps a given Runnable/Callable with a JSR-236 ManagedTask, exposing a long-running hint based onSchedulingAwareRunnableand a given identity name.
字段概要
从接口继承的字段 org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
构造器概要
构造器 构造器 说明 ConcurrentTaskExecutor()Create a new ConcurrentTaskExecutor, using a single thread executor as default.ConcurrentTaskExecutor(Executor executor)Create a new ConcurrentTaskExecutor, using the givenExecutor.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidexecute(Runnable task)Execute the giventask.voidexecute(Runnable task, long startTimeout)Execute the giventask.ExecutorgetConcurrentExecutor()Return theExecutorthat this adapter delegates to.voidsetConcurrentExecutor(Executor executor)Specify theExecutorto delegate to.voidsetTaskDecorator(TaskDecorator taskDecorator)Specify a customTaskDecoratorto be applied to anyRunnableabout 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 aRunnabletask for execution, receiving aListenableFuturerepresenting that task.<T> ListenableFuture<T>submitListenable(Callable<T> task)Submit aCallabletask for execution, receiving aListenableFuturerepresenting that task.从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.springframework.scheduling.SchedulingTaskExecutor
prefersShortLivedTasks
构造器详细资料
ConcurrentTaskExecutor
public ConcurrentTaskExecutor()
Create a new ConcurrentTaskExecutor, using a single thread executor as default.
ConcurrentTaskExecutor
public ConcurrentTaskExecutor(@Nullable Executor executor)
Create a new ConcurrentTaskExecutor, using the givenExecutor.Autodetects a JSR-236
ManagedExecutorServicein order to exposeManagedTaskadapters for it.- 参数:
executor- theExecutorto delegate to
方法详细资料
setConcurrentExecutor
public final void setConcurrentExecutor(@Nullable Executor executor)
Specify theExecutorto delegate to.Autodetects a JSR-236
ManagedExecutorServicein order to exposeManagedTaskadapters for it.
getConcurrentExecutor
public final Executor getConcurrentExecutor()
Return theExecutorthat this adapter delegates to.
setTaskDecorator
public final void setTaskDecorator(TaskDecorator taskDecorator)
Specify 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.
NOTE: Exception handling in
TaskDecoratorimplementations is limited to plainRunnableexecution viaexecutecalls. In case of#submitcalls, the exposedRunnablewill be aFutureTaskwhich does not propagate any exceptions; you might have to cast it and callFuture#getto evaluate exceptions.- 从以下版本开始:
- 4.3
execute
public void execute(Runnable task)
从接口复制的说明: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.
- 指定者:
execute在接口中Executor- 指定者:
execute在接口中TaskExecutor- 参数:
task- theRunnableto execute (nevernull)
execute
public void execute(Runnable task, long startTimeout)
从接口复制的说明:AsyncTaskExecutorExecute the giventask.- 指定者:
execute在接口中AsyncTaskExecutor- 参数:
task- theRunnableto 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_IMMEDIATEorAsyncTaskExecutor.TIMEOUT_INDEFINITE(the default as used byTaskExecutor.execute(Runnable)).
submit
public Future<?> submit(Runnable task)
从接口复制的说明:AsyncTaskExecutorSubmit a Runnable task for execution, receiving a Future representing that task. The Future will return anullresult upon completion.- 指定者:
submit在接口中AsyncTaskExecutor- 参数:
task- theRunnableto execute (nevernull)- 返回:
- a Future representing pending completion of the task
submit
public <T> Future<T> submit(Callable<T> task)
从接口复制的说明:AsyncTaskExecutorSubmit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.- 指定者:
submit在接口中AsyncTaskExecutor- 参数:
task- theCallableto execute (nevernull)- 返回:
- a Future representing pending completion of the task
submitListenable
public ListenableFuture<?> submitListenable(Runnable task)
从接口复制的说明:AsyncListenableTaskExecutorSubmit aRunnabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return anullresult upon completion.- 指定者:
submitListenable在接口中AsyncListenableTaskExecutor- 参数:
task- theRunnableto execute (nevernull)- 返回:
- a
ListenableFuturerepresenting pending completion of the task
submitListenable
public <T> ListenableFuture<T> submitListenable(Callable<T> task)
从接口复制的说明:AsyncListenableTaskExecutorSubmit aCallabletask for execution, receiving aListenableFuturerepresenting that task. The Future will return the Callable's result upon completion.- 指定者:
submitListenable在接口中AsyncListenableTaskExecutor- 参数:
task- theCallableto execute (nevernull)- 返回:
- a
ListenableFuturerepresenting pending completion of the task