Interface TaskScheduler
- All Known Implementing Classes:
ConcurrentTaskScheduler
,DefaultManagedTaskScheduler
,ThreadPoolTaskScheduler
,TimerManagerTaskScheduler
public interface TaskScheduler
Task scheduler interface that abstracts the scheduling ofRunnables
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 nativeScheduledExecutorService
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'sTaskExecutor
model.- Since:
- 3.0
- Author:
- Juergen Hoeller
- See Also:
TaskExecutor
,ScheduledExecutorService
,ThreadPoolTaskScheduler
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default ScheduledFuture<?>
schedule(Runnable task, Instant startTime)
Schedule the givenRunnable
, invoking it at the specified execution time.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.default ScheduledFuture<?>
scheduleAtFixedRate(Runnable task, Duration period)
Schedule the givenRunnable
, starting as soon as possible and invoking it with the given period.default ScheduledFuture<?>
scheduleAtFixedRate(Runnable task, Instant startTime, Duration period)
Schedule the givenRunnable
, invoking it at the specified execution time and subsequently 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.default ScheduledFuture<?>
scheduleWithFixedDelay(Runnable task, Duration 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.default ScheduledFuture<?>
scheduleWithFixedDelay(Runnable task, Instant startTime, Duration 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.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.
Method Detail
schedule
@Nullable ScheduledFuture<?> schedule(Runnable task, Trigger trigger)
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.- Parameters:
task
- the Runnable to execute whenever the trigger firestrigger
- an implementation of theTrigger
interface, e.g. aCronTrigger
object wrapping a cron expression- Returns:
- 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)
) - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- See Also:
CronTrigger
schedule
default ScheduledFuture<?> schedule(Runnable task, Instant startTime)
Schedule the givenRunnable
, invoking it at the specified execution time.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
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)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- Since:
- 5.0
- See Also:
schedule(Runnable, Date)
schedule
ScheduledFuture<?> schedule(Runnable task, Date startTime)
Schedule the givenRunnable
, invoking it at the specified execution time.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
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)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
scheduleAtFixedRate
default ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Instant startTime, Duration period)
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.- Parameters:
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- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- Since:
- 5.0
- See Also:
scheduleAtFixedRate(Runnable, Date, long)
scheduleAtFixedRate
ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Date startTime, long period)
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.- Parameters:
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)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
scheduleAtFixedRate
default ScheduledFuture<?> scheduleAtFixedRate(Runnable task, Duration period)
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.- Parameters:
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the task- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- Since:
- 5.0
- See Also:
scheduleAtFixedRate(Runnable, long)
scheduleAtFixedRate
ScheduledFuture<?> scheduleAtFixedRate(Runnable task, long period)
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.- Parameters:
task
- the Runnable to execute whenever the trigger firesperiod
- the interval between successive executions of the task (in milliseconds)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
scheduleWithFixedDelay
default ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, Instant startTime, Duration 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.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
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- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- Since:
- 5.0
- See Also:
scheduleWithFixedDelay(Runnable, Date, long)
scheduleWithFixedDelay
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.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
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)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)
scheduleWithFixedDelay
default ScheduledFuture<?> scheduleWithFixedDelay(Runnable task, Duration 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.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
task
- the Runnable to execute whenever the trigger firesdelay
- the delay between the completion of one execution and the start of the next- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)- Since:
- 5.0
- See Also:
scheduleWithFixedDelay(Runnable, long)
scheduleWithFixedDelay
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.Execution will end once the scheduler shuts down or the returned
ScheduledFuture
gets cancelled.- Parameters:
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)- Returns:
- a
ScheduledFuture
representing pending completion of the task - Throws:
TaskRejectedException
- if the given task was not accepted for internal reasons (e.g. a pool overload handling policy or a pool shutdown in progress)