Package org.apache.jackrabbit.util
Class Timer
- java.lang.Object
-
- org.apache.jackrabbit.util.Timer
-
public class Timer extends java.lang.Object
Timer
wraps the standard JavaTimer
class and implements a guaranteed shutdown of the background thread running in theTimer
instance after a certainIDLE_TIME
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Timer.Task
Extends theTimerTask
with callback hooks to thisTimer
implementation.
-
Constructor Summary
Constructors Constructor Description Timer(boolean isDeamon)
Creates a newTimer
instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cancel()
Terminates this timer, discarding any currently scheduled tasks.void
schedule(Timer.Task task, long delay, long period)
Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay.
-
-
-
Method Detail
-
schedule
public void schedule(Timer.Task task, long delay, long period)
Schedules the specified task for repeated fixed-delay execution, beginning after the specified delay. Subsequent executions take place at approximately regular intervals separated by the specified period.- Parameters:
task
- task to be scheduled.delay
- delay in milliseconds before task is to be executed.period
- time in milliseconds between successive task executions.- Throws:
java.lang.IllegalArgumentException
- ifdelay
is negative, ordelay + System.currentTimeMillis()
is negative.java.lang.IllegalStateException
- if task was already scheduled or cancelled, timer was cancelled, or timer thread terminated.- See Also:
Timer.schedule(java.util.TimerTask, long, long)
-
cancel
public void cancel()
Terminates this timer, discarding any currently scheduled tasks. Does not interfere with a currently executing task (if it exists). Once a timer has been terminated, its execution thread terminates gracefully, and no more tasks may be scheduled on it.Note that calling this method from within the run method of a timer task that was invoked by this timer absolutely guarantees that the ongoing task execution is the last task execution that will ever be performed by this timer.
This method may be called repeatedly; the second and subsequent calls have no effect.
-
-