public interface

TaskScheduler

org.springframework.scheduling.TaskScheduler
Known Indirect Subclasses

Class Overview

Task scheduler interface that abstracts the scheduling of Runnable 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 6 environments. However, at the time of the Spring 3.0 release, the JSR-236 interfaces have not been released in official form yet.

Summary

Public Methods
abstract ScheduledFuture schedule(Runnable task, Date startTime)
Schedule the given Runnable, invoking it at the specified execution time.
abstract ScheduledFuture schedule(Runnable task, Trigger trigger)
Schedule the given Runnable, invoking it whenever the trigger indicates a next execution time.
abstract ScheduledFuture scheduleAtFixedRate(Runnable task, long period)
Schedule the given Runnable, starting as soon as possible and invoking it with the given period.
abstract ScheduledFuture scheduleAtFixedRate(Runnable task, Date startTime, long period)
Schedule the given Runnable, invoking it at the specified execution time and subsequently with the given period.
abstract ScheduledFuture scheduleWithFixedDelay(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.
abstract ScheduledFuture scheduleWithFixedDelay(Runnable task, 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.

Public Methods

public abstract ScheduledFuture schedule (Runnable task, Date startTime)

Schedule the given Runnable, 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 fires
startTime 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
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)

public abstract ScheduledFuture schedule (Runnable task, Trigger trigger)

Schedule the given 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.

Parameters
task the Runnable to execute whenever the trigger fires
trigger an implementation of the Trigger interface, e.g. a CronTrigger object wrapping a cron expression
Returns
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

public abstract ScheduledFuture scheduleAtFixedRate (Runnable task, long period)

Schedule the given 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.

Parameters
task the Runnable to execute whenever the trigger fires
period the interval between successive executions of the task (in milliseconds)
Returns
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)

public abstract ScheduledFuture scheduleAtFixedRate (Runnable task, Date startTime, long period)

Schedule the given 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.

Parameters
task the Runnable to execute whenever the trigger fires
startTime 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
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)

public abstract ScheduledFuture scheduleWithFixedDelay (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.

Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

Parameters
task the Runnable to execute whenever the trigger fires
delay the interval between successive executions of the task (in milliseconds)
Returns
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)

public abstract ScheduledFuture scheduleWithFixedDelay (Runnable task, 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.

Execution will end once the scheduler shuts down or the returned ScheduledFuture gets cancelled.

Parameters
task the Runnable to execute whenever the trigger fires
startTime 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
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)