public interface TaskScheduler
Runnables
based on different kinds of triggers.
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 ScheduledExecutorService
and adding extended trigger capabilities.
This interface is roughly equivalent to a JSR-236
ManagedScheduledExecutorService
as supported in Java EE 7
environments but aligned with Spring's TaskExecutor
model.
TaskExecutor
,
ScheduledExecutorService
,
ThreadPoolTaskScheduler
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.ScheduledFuture<?> |
schedule(java.lang.Runnable task,
java.util.Date startTime)
Schedule the given
Runnable , invoking it at the specified execution time. |
default java.util.concurrent.ScheduledFuture<?> |
schedule(java.lang.Runnable task,
java.time.Instant startTime)
Schedule the given
Runnable , invoking it at the specified execution time. |
java.util.concurrent.ScheduledFuture<?> |
schedule(java.lang.Runnable task,
Trigger trigger)
Schedule the given
Runnable , 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
Runnable , invoking it at the specified execution time
and subsequently with the given period. |
default java.util.concurrent.ScheduledFuture<?> |
scheduleAtFixedRate(java.lang.Runnable task,
java.time.Duration period)
Schedule the given
Runnable , starting as soon as possible and
invoking it with the given period. |
default java.util.concurrent.ScheduledFuture<?> |
scheduleAtFixedRate(java.lang.Runnable task,
java.time.Instant startTime,
java.time.Duration period)
Schedule the given
Runnable , 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
Runnable , 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
Runnable , 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. |
default java.util.concurrent.ScheduledFuture<?> |
scheduleWithFixedDelay(java.lang.Runnable task,
java.time.Duration delay)
Schedule the given
Runnable , starting as soon as possible and invoking it with
the given delay between the completion of one execution and the start of the next. |
default java.util.concurrent.ScheduledFuture<?> |
scheduleWithFixedDelay(java.lang.Runnable task,
java.time.Instant startTime,
java.time.Duration delay)
Schedule the given
Runnable , 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
Runnable , starting as soon as possible and invoking it with
the given delay between the completion of one execution and the start of the next. |
@Nullable java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task, Trigger trigger)
Runnable
, invoking it whenever the trigger
indicates a next execution time.
Execution will end once the scheduler shuts down or the returned
ScheduledFuture
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 expressionScheduledFuture
representing pending completion of the task,
or null
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
default java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task, java.time.Instant startTime)
Runnable
, invoking it at the specified execution time.
Execution will end once the scheduler shuts down or the returned
ScheduledFuture
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)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)schedule(Runnable, Date)
java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable task, java.util.Date startTime)
Runnable
, invoking it at the specified execution time.
Execution will end once the scheduler shuts down or the returned
ScheduledFuture
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)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)default java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task, java.time.Instant startTime, java.time.Duration period)
Runnable
, 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.
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 taskScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)scheduleAtFixedRate(Runnable, Date, long)
java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task, java.util.Date startTime, long period)
Runnable
, 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.
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)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)default java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task, java.time.Duration period)
Runnable
, 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.
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the taskScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)scheduleAtFixedRate(Runnable, long)
java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable task, long period)
Runnable
, 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.
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the task (in milliseconds)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)default java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task, java.time.Instant startTime, java.time.Duration delay)
Runnable
, 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.
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 nextScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)scheduleWithFixedDelay(Runnable, Date, long)
java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task, java.util.Date startTime, long delay)
Runnable
, 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.
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)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)default java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task, java.time.Duration delay)
Runnable
, 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.
task
- the Runnable to execute whenever the trigger firesdelay
- the delay between the completion of one execution and the start of the nextScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)scheduleWithFixedDelay(Runnable, long)
java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable task, long delay)
Runnable
, 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.
task
- the Runnable to execute whenever the trigger firesdelay
- the delay between the completion of one execution and the start of the next
(in milliseconds)ScheduledFuture
representing pending completion of the taskTaskRejectedException
- if the given task was not accepted
for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)