类 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 concurrentExecutor)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.booleanprefersShortLivedTasks()This task executor prefers short-lived work units.voidsetConcurrentExecutor(Executor concurrentExecutor)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.
构造器详细资料
ConcurrentTaskExecutor
public ConcurrentTaskExecutor()
Create a new ConcurrentTaskExecutor, using a single thread executor as default.
ConcurrentTaskExecutor
public ConcurrentTaskExecutor(Executor concurrentExecutor)
Create a new ConcurrentTaskExecutor, using the givenExecutor.Autodetects a JSR-236
ManagedExecutorServicein order to exposeManagedTaskadapters for it.- 参数:
concurrentExecutor- theExecutorto delegate to
方法详细资料
setConcurrentExecutor
public final void setConcurrentExecutor(Executor concurrentExecutor)
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
prefersShortLivedTasks
public boolean prefersShortLivedTasks()
This task executor prefers short-lived work units.- 指定者:
prefersShortLivedTasks在接口中SchedulingTaskExecutor- 返回:
trueif thisTaskExecutorprefers short-lived tasks