org.springframework.scheduling.timer
Class ScheduledTimerTask

java.lang.Object
  extended by org.springframework.scheduling.timer.ScheduledTimerTask

public class ScheduledTimerTask
extends Object

JavaBean that describes a scheduled TimerTask, consisting of the TimerTask itself (or a Runnable to create a TimerTask for) and a delay plus period. Period needs to be specified; there is no point in a default for it.

The JDK Timer does not offer more sophisticated scheduling options such as cron expressions. Consider using Quartz for such advanced needs.

Note that Timer uses a TimerTask instance that is shared between repeated executions, in contrast to Quartz which instantiates a new Job for each execution.

Since:
19.02.2004
Author:
Juergen Hoeller
See Also:
TimerTask, Timer.schedule(TimerTask, long, long), Timer.scheduleAtFixedRate(TimerTask, long, long)

Constructor Summary
ScheduledTimerTask()
          Create a new ScheduledTimerTask, to be populated via bean properties.
ScheduledTimerTask(Runnable timerTask)
          Create a new ScheduledTimerTask, with default one-time execution without delay.
ScheduledTimerTask(Runnable timerTask, long delay)
          Create a new ScheduledTimerTask, with default one-time execution with the given delay.
ScheduledTimerTask(Runnable timerTask, long delay, long period, boolean fixedRate)
          Create a new ScheduledTimerTask.
ScheduledTimerTask(TimerTask timerTask)
          Create a new ScheduledTimerTask, with default one-time execution without delay.
ScheduledTimerTask(TimerTask timerTask, long delay)
          Create a new ScheduledTimerTask, with default one-time execution with the given delay.
ScheduledTimerTask(TimerTask timerTask, long delay, long period, boolean fixedRate)
          Create a new ScheduledTimerTask.
 
Method Summary
 long getDelay()
          Return the delay before starting the job for the first time.
 long getPeriod()
          Return the period between repeated task executions.
 TimerTask getTimerTask()
          Return the TimerTask to schedule.
 boolean isFixedRate()
          Return whether to schedule as fixed-rate execution.
 void setDelay(long delay)
          Set the delay before starting the task for the first time, in milliseconds.
 void setFixedRate(boolean fixedRate)
          Set whether to schedule as fixed-rate execution, rather than fixed-delay execution.
 void setPeriod(long period)
          Set the period between repeated task executions, in milliseconds.
 void setRunnable(Runnable timerTask)
          Set the Runnable to schedule as TimerTask.
 void setTimerTask(TimerTask timerTask)
          Set the TimerTask to schedule.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScheduledTimerTask

public ScheduledTimerTask()
Create a new ScheduledTimerTask, to be populated via bean properties.

See Also:
setTimerTask(java.util.TimerTask), setDelay(long), setPeriod(long), setFixedRate(boolean)

ScheduledTimerTask

public ScheduledTimerTask(TimerTask timerTask)
Create a new ScheduledTimerTask, with default one-time execution without delay.

Parameters:
timerTask - the TimerTask to schedule

ScheduledTimerTask

public ScheduledTimerTask(TimerTask timerTask,
                          long delay)
Create a new ScheduledTimerTask, with default one-time execution with the given delay.

Parameters:
timerTask - the TimerTask to schedule
delay - the delay before starting the task for the first time (ms)

ScheduledTimerTask

public ScheduledTimerTask(TimerTask timerTask,
                          long delay,
                          long period,
                          boolean fixedRate)
Create a new ScheduledTimerTask.

Parameters:
timerTask - the TimerTask to schedule
delay - the delay before starting the task for the first time (ms)
period - the period between repeated task executions (ms)
fixedRate - whether to schedule as fixed-rate execution

ScheduledTimerTask

public ScheduledTimerTask(Runnable timerTask)
Create a new ScheduledTimerTask, with default one-time execution without delay.

Parameters:
timerTask - the Runnable to schedule as TimerTask

ScheduledTimerTask

public ScheduledTimerTask(Runnable timerTask,
                          long delay)
Create a new ScheduledTimerTask, with default one-time execution with the given delay.

Parameters:
timerTask - the Runnable to schedule as TimerTask
delay - the delay before starting the task for the first time (ms)

ScheduledTimerTask

public ScheduledTimerTask(Runnable timerTask,
                          long delay,
                          long period,
                          boolean fixedRate)
Create a new ScheduledTimerTask.

Parameters:
timerTask - the Runnable to schedule as TimerTask
delay - the delay before starting the task for the first time (ms)
period - the period between repeated task executions (ms)
fixedRate - whether to schedule as fixed-rate execution
Method Detail

setRunnable

public void setRunnable(Runnable timerTask)
Set the Runnable to schedule as TimerTask.

See Also:
DelegatingTimerTask

setTimerTask

public void setTimerTask(TimerTask timerTask)
Set the TimerTask to schedule.


getTimerTask

public TimerTask getTimerTask()
Return the TimerTask to schedule.


setDelay

public void setDelay(long delay)
Set the delay before starting the task for the first time, in milliseconds. Default is 0, immediately starting the task after successful scheduling.


getDelay

public long getDelay()
Return the delay before starting the job for the first time.


setPeriod

public void setPeriod(long period)
Set the period between repeated task executions, in milliseconds. Default is 0, leading to one-time execution. In case of a positive value, the task will be executed repeatedly, with the given interval inbetween executions.

Note that the semantics of the period vary between fixed-rate and fixed-delay execution.

See Also:
setFixedRate(boolean)

getPeriod

public long getPeriod()
Return the period between repeated task executions.


setFixedRate

public void setFixedRate(boolean fixedRate)
Set whether to schedule as fixed-rate execution, rather than fixed-delay execution. Default is "false", i.e. fixed delay.

See Timer javadoc for details on those execution modes.

See Also:
Timer.schedule(TimerTask, long, long), Timer.scheduleAtFixedRate(TimerTask, long, long)

isFixedRate

public boolean isFixedRate()
Return whether to schedule as fixed-rate execution.



Copyright (c) 2002-2007 The Spring Framework Project.