类 ThreadPoolTaskScheduler
- java.lang.Object
- org.springframework.util.CustomizableThreadCreator
- org.springframework.scheduling.concurrent.CustomizableThreadFactory
- org.springframework.scheduling.concurrent.ExecutorConfigurationSupport
- org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
- 所有已实现的接口:
Serializable
,Executor
,ThreadFactory
,Aware
,BeanNameAware
,DisposableBean
,InitializingBean
,AsyncListenableTaskExecutor
,AsyncTaskExecutor
,TaskExecutor
,SchedulingTaskExecutor
,TaskScheduler
public class ThreadPoolTaskScheduler extends ExecutorConfigurationSupport implements AsyncListenableTaskExecutor, SchedulingTaskExecutor, TaskScheduler
Implementation of Spring'sTaskScheduler
interface, wrapping a nativeScheduledThreadPoolExecutor
.- 从以下版本开始:
- 3.0
- 作者:
- Juergen Hoeller, Mark Fisher
- 另请参阅:
setPoolSize(int)
,setRemoveOnCancelPolicy(boolean)
,ExecutorConfigurationSupport.setThreadFactory(java.util.concurrent.ThreadFactory)
,setErrorHandler(org.springframework.util.ErrorHandler)
, 序列化表格
字段概要
从类继承的字段 org.springframework.scheduling.concurrent.ExecutorConfigurationSupport
logger
从接口继承的字段 org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
构造器概要
构造器 构造器 说明 ThreadPoolTaskScheduler()
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected ScheduledExecutorService
createExecutor(int poolSize, ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler)
Create a newScheduledExecutorService
instance.void
execute(Runnable task)
Execute the giventask
.void
execute(Runnable task, long startTimeout)
Execute the giventask
.int
getActiveCount()
Return the number of currently active threads.int
getPoolSize()
Return the current pool size.ScheduledExecutorService
getScheduledExecutor()
Return the underlying ScheduledExecutorService for native access.ScheduledThreadPoolExecutor
getScheduledThreadPoolExecutor()
Return the underlying ScheduledThreadPoolExecutor, if available.protected ExecutorService
initializeExecutor(ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler)
Create the targetExecutorService
instance.boolean
isRemoveOnCancelPolicy()
Return the current setting for the remove-on-cancel mode.boolean
prefersShortLivedTasks()
Does thisTaskExecutor
prefer short-lived tasks over long-lived tasks?ScheduledFuture<?>
schedule(Runnable task, Date startTime)
Schedule the givenRunnable
, invoking it at the specified execution time.ScheduledFuture<?>
schedule(Runnable task, Trigger trigger)
Schedule the givenRunnable
, invoking it whenever the trigger indicates a next execution time.ScheduledFuture<?>
scheduleAtFixedRate(Runnable task, long period)
Schedule the givenRunnable
, starting as soon as possible and invoking it with the given period.ScheduledFuture<?>
scheduleAtFixedRate(Runnable task, Date startTime, long period)
Schedule the givenRunnable
, invoking it at the specified execution time and subsequently with the given period.ScheduledFuture<?>
scheduleWithFixedDelay(Runnable task, long delay)
Schedule the givenRunnable
, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.ScheduledFuture<?>
scheduleWithFixedDelay(Runnable task, Date startTime, long delay)
Schedule the givenRunnable
, invoking it at the specified execution time and subsequently with the given delay between the completion of one execution and the start of the next.void
setErrorHandler(ErrorHandler errorHandler)
Set a customErrorHandler
strategy.void
setPoolSize(int poolSize)
Set the ScheduledExecutorService's pool size.void
setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)
Set the remove-on-cancel mode onScheduledThreadPoolExecutor
(JDK 7+).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.从类继承的方法 org.springframework.scheduling.concurrent.ExecutorConfigurationSupport
afterPropertiesSet, destroy, initialize, setAwaitTerminationSeconds, setBeanName, setRejectedExecutionHandler, setThreadFactory, setThreadNamePrefix, setWaitForTasksToCompleteOnShutdown, shutdown
从类继承的方法 org.springframework.scheduling.concurrent.CustomizableThreadFactory
newThread
从类继承的方法 org.springframework.util.CustomizableThreadCreator
createThread, getDefaultThreadNamePrefix, getThreadGroup, getThreadNamePrefix, getThreadPriority, isDaemon, nextThreadName, setDaemon, setThreadGroup, setThreadGroupName, setThreadPriority
构造器详细资料
ThreadPoolTaskScheduler
public ThreadPoolTaskScheduler()
方法详细资料
setPoolSize
public void setPoolSize(int poolSize)
Set the ScheduledExecutorService's pool size. Default is 1.This setting can be modified at runtime, for example through JMX.
setRemoveOnCancelPolicy
@UsesJava7 public void setRemoveOnCancelPolicy(boolean removeOnCancelPolicy)
Set the remove-on-cancel mode onScheduledThreadPoolExecutor
(JDK 7+).Default is
false
. If set totrue
, the target executor will be switched into remove-on-cancel mode (if possible, with a soft fallback otherwise).This setting can be modified at runtime, for example through JMX.
setErrorHandler
public void setErrorHandler(ErrorHandler errorHandler)
Set a customErrorHandler
strategy.
initializeExecutor
@UsesJava7 protected ExecutorService initializeExecutor(ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler)
从类复制的说明:ExecutorConfigurationSupport
Create the targetExecutorService
instance. Called byafterPropertiesSet
.- 指定者:
initializeExecutor
在类中ExecutorConfigurationSupport
- 参数:
threadFactory
- the ThreadFactory to userejectedExecutionHandler
- the RejectedExecutionHandler to use- 返回:
- a new ExecutorService instance
- 另请参阅:
ExecutorConfigurationSupport.afterPropertiesSet()
createExecutor
protected ScheduledExecutorService createExecutor(int poolSize, ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler)
Create a newScheduledExecutorService
instance.The default implementation creates a
ScheduledThreadPoolExecutor
. Can be overridden in subclasses to provide customScheduledExecutorService
instances.- 参数:
poolSize
- the specified pool sizethreadFactory
- the ThreadFactory to userejectedExecutionHandler
- the RejectedExecutionHandler to use- 返回:
- a new ScheduledExecutorService instance
- 另请参阅:
ExecutorConfigurationSupport.afterPropertiesSet()
,ScheduledThreadPoolExecutor
getScheduledExecutor
public ScheduledExecutorService getScheduledExecutor() throws IllegalStateException
Return the underlying ScheduledExecutorService for native access.- 返回:
- the underlying ScheduledExecutorService (never
null
) - 抛出:
IllegalStateException
- if the ThreadPoolTaskScheduler hasn't been initialized yet
getScheduledThreadPoolExecutor
public ScheduledThreadPoolExecutor getScheduledThreadPoolExecutor() throws IllegalStateException
Return the underlying ScheduledThreadPoolExecutor, if available.- 返回:
- the underlying ScheduledExecutorService (never
null
) - 抛出:
IllegalStateException
- if the ThreadPoolTaskScheduler hasn't been initialized yet or if the underlying ScheduledExecutorService isn't a ScheduledThreadPoolExecutor- 另请参阅:
getScheduledExecutor()
getPoolSize
public int getPoolSize()
Return the current pool size.Requires an underlying
ScheduledThreadPoolExecutor
.
isRemoveOnCancelPolicy
@UsesJava7 public boolean isRemoveOnCancelPolicy()
Return the current setting for the remove-on-cancel mode.Requires an underlying
ScheduledThreadPoolExecutor
.
getActiveCount
public int getActiveCount()
Return the number of currently active threads.Requires an underlying
ScheduledThreadPoolExecutor
.
execute
public void execute(Runnable task)
从接口复制的说明:TaskExecutor
Execute 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
- theRunnable
to execute (nevernull
)
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
prefersShortLivedTasks
public boolean prefersShortLivedTasks()
从接口复制的说明:SchedulingTaskExecutor
Does thisTaskExecutor
prefer short-lived tasks over long-lived tasks?A
SchedulingTaskExecutor
implementation can indicate whether it prefers submitted tasks to perform as little work as they can within a single task execution. For example, submitted tasks might break a repeated loop into individual subtasks which submit a follow-up task afterwards (if feasible).This should be considered a hint. Of course
TaskExecutor
clients are free to ignore this flag and hence theSchedulingTaskExecutor
interface overall. However, thread pools will usually indicated a preference for short-lived tasks, to be able to perform more fine-grained scheduling.- 指定者:
prefersShortLivedTasks
在接口中SchedulingTaskExecutor
- 返回:
true
if thisTaskExecutor
prefers short-lived tasks
schedule
public ScheduledFuture<?> schedule(Runnable task, Trigger trigger)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, invoking it whenever the trigger indicates a next execution time.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
schedule
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firestrigger
- an implementation of theTrigger
interface, e.g. aCronTrigger
object wrapping a cron expression- 返回:
- a
ScheduledFuture
representing pending completion of the task, ornull
if the given Trigger object never fires (i.e. returnsnull
fromTrigger.nextExecutionTime(org.springframework.scheduling.TriggerContext)
) - 另请参阅:
CronTrigger
schedule
public ScheduledFuture<?> schedule(Runnable task, Date startTime)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, invoking it at the specified execution time.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
schedule
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firesstartTime
- the desired execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)- 返回:
- a
ScheduledFuture
representing pending completion of the task
scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Date startTime, long period)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, invoking it at the specified execution time and subsequently with the given period.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
scheduleAtFixedRate
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firesstartTime
- the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)period
- the interval between successive executions of the task (in milliseconds)- 返回:
- a
ScheduledFuture
representing pending completion of the task
scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long period)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, starting as soon as possible and invoking it with the given period.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
scheduleAtFixedRate
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the task (in milliseconds)- 返回:
- a
ScheduledFuture
representing pending completion of the task
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, Date startTime, long delay)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, invoking it at the specified execution time and subsequently with the given delay between the completion of one execution and the start of the next.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
scheduleWithFixedDelay
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firesstartTime
- the desired first execution time for the task (if this is in the past, the task will be executed immediately, i.e. as soon as possible)delay
- the delay between the completion of one execution and the start of the next (in milliseconds)- 返回:
- a
ScheduledFuture
representing pending completion of the task
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, long delay)
从接口复制的说明:TaskScheduler
Schedule the givenRunnable
, starting as soon as possible and invoking it with the given delay between the completion of one execution and the start of the next.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- 指定者:
scheduleWithFixedDelay
在接口中TaskScheduler
- 参数:
task
- the Runnable to execute whenever the trigger firesdelay
- the interval between successive executions of the task (in milliseconds)- 返回:
- a
ScheduledFuture
representing pending completion of the task