public interface TaskScheduler
This interface is separate from SchedulingTaskExecutor
since it
usually represents for a different kind of backend, i.e. a thread pool with
different characteristics and capabilities. Implementations may implement
both interfaces if they can handle both kinds of execution characteristics.
The 'default' implementation is
ThreadPoolTaskScheduler
,
wrapping a native <code>ScheduledExecutorService</code>
and adding extended trigger capabilities.
This interface is roughly equivalent to a JSR-236
ManagedScheduledExecutorService
as supported in Java EE 6
environments. However, at the time of the Spring 3.0 release, the
JSR-236 interfaces have not been released in official form yet.
TaskExecutor
,
<code>ScheduledExecutorService</code>,
ThreadPoolTaskScheduler
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.ScheduledFuture |
schedule(java.lang.Runnable task,
java.util.Date startTime)
Schedule the given <code>Runnable</code>, invoking it at the specified execution time.
|
java.util.concurrent.ScheduledFuture |
schedule(java.lang.Runnable task,
Trigger trigger)
Schedule the given <code>Runnable</code>, invoking it whenever the trigger
indicates a next execution time.
|
java.util.concurrent.ScheduledFuture |
scheduleAtFixedRate(java.lang.Runnable task,
java.util.Date startTime,
long period)
Schedule the given <code>Runnable</code>, invoking it at the specified execution time
and subsequently with the given period.
|
java.util.concurrent.ScheduledFuture |
scheduleAtFixedRate(java.lang.Runnable task,
long period)
Schedule the given <code>Runnable</code>, starting as soon as possible and
invoking it with the given period.
|
java.util.concurrent.ScheduledFuture |
scheduleWithFixedDelay(java.lang.Runnable task,
java.util.Date startTime,
long delay)
Schedule the given <code>Runnable</code>, 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.
|
java.util.concurrent.ScheduledFuture |
scheduleWithFixedDelay(java.lang.Runnable task,
long delay)
Schedule the given <code>Runnable</code>, starting as soon as possible and
invoking it with the given delay between the completion of one execution
and the start of the next.
|
java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable task, Trigger trigger)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
task
- the Runnable to execute whenever the trigger firestrigger
- an implementation of the Trigger
interface,
e.g. a CronTrigger
object
wrapping a cron expressionnull
if the given Trigger object never fires (i.e. returns
null
from Trigger.nextExecutionTime(org.springframework.scheduling.TriggerContext)
)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)CronTrigger
java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable task, java.util.Date startTime)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
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)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable task, java.util.Date startTime, long period)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
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)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable task, long period)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the task (in milliseconds)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable task, java.util.Date startTime, long delay)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
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)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable task, long delay)
Execution will end once the scheduler shuts down or the returned <code>ScheduledFuture</code> gets cancelled.
task
- the Runnable to execute whenever the trigger firesdelay
- the interval between successive executions of the task (in milliseconds)TaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)