public interface Timer
TimerManager.schedule
methods.
It allows retrieving information about the scheduled TimerListener and
allows cancelling it.Timers are transient and not transactional and run inside the JVM which created them. If a cluster-wide scheduled event is required or it needs to be persistent, transactional or recoverable then a service such as the EJB 2.1 Timer service should be used instead.
Timer
,
TimerListener
Modifier and Type | Method | Description |
---|---|---|
boolean |
cancel() |
This cancels the timer and all future TimerListener invocations and
may be called during the
TimerListener.timerExpired
method. |
long |
getPeriod() |
Return the period used to compute the time this timer will repeat.
|
long |
getScheduledExecutionTime() |
Returns the next absolute scheduled execution time in milliseconds.
|
TimerListener |
getTimerListener() |
Returns the application-supplied TimerListener associated
with this Timer.
|
boolean cancel()
TimerListener.timerExpired
method.
CancelTimerListener.timerCancel
events may be
called concurrently with any TimerListener.timerExpired
methods. Proper thread synchronization techiniques must be employed to
ensure consistency.
Once a Timer is cancelled an application must not use
the Timer instance again.
CancelTimerListener
TimerListener getTimerListener()
java.lang.IllegalStateException
- if the TimerManager has been stopped.long getScheduledExecutionTime() throws java.lang.IllegalStateException
If invoked while a TimerListener is running, the return value is the scheduled execution time of the current TimerListener execution.
This method is typically invoked from within a TimerListener's timerExpired method, to determine whether the current execution of the task is sufficiently timely to warrant performing the scheduled activity:
public void timerExpired(Timer t) { if (System.currentTimeMillis() - t.scheduledExecutionTime() >= MAX_TARDINESS) return; // Too late; skip this execution. // Perform the task }If the timer has been suspended, the time reflects the most recently-calculated execution time prior to being suspended.
java.lang.IllegalStateException
- if the TimerManager has been stopped.long getPeriod()