Class Scheduler
- java.lang.Object
-
- net.sf.basedb.util.timer.Scheduler
-
public class Scheduler extends Object
This class is a cousin to the standardTimer
class but only allows scheduling of tasks. This allows an application to create a core timer and let other code addTimerTask
:s to the timer.Another feature of this class is that it can force the execution of tasks in their own threads. This avoids that long-runing tasks hog the timer thread and therby prevent other tasks from running.
If new threads are created for the tasks, it is also possible to specify on a task-by-task basis if the task may run in multiple threads at the same time.
A side-effect by using a scheduler is that all methods may return a different
TimerTask
object than what was scheduled. If the calling application want to cancel a task it must do so on the object that is returned, since that object is the one really lives in the timer. However, callingTimerTask.cancel()
passes through to the original task as well.- Version:
- 2.0
- Author:
- nicklas
- See Also:
Timer
,TimerTask
,ThreadTimerTask
- Last modified
- $Date: 2008-09-11 22:08:14 +0200 (to, 11 sep 2008) $
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
newThreads
private Timer
timer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private TimerTask
getTimerTask(TimerTask task, boolean allowMultiple)
TimerTask
schedule(TimerTask task, long delay, boolean allowMultiple)
TimerTask
schedule(TimerTask task, long delay, long period, boolean allowMultiple)
TimerTask
schedule(TimerTask task, Date time, boolean allowMultiple)
TimerTask
schedule(TimerTask task, Date firstTime, long period, boolean allowMultiple)
TimerTask
scheduleAtFixedRate(TimerTask task, long delay, long period, boolean allowMultiple)
TimerTask
scheduleAtFixedRate(TimerTask task, Date firstTime, long period, boolean allowMultiple)
-
-
-
Field Detail
-
timer
private final Timer timer
-
newThreads
private final boolean newThreads
-
-
Constructor Detail
-
Scheduler
public Scheduler(Timer timer, boolean newThreads)
Create a new scheduler object.- Parameters:
timer
- The underlying timer object which handles the execution of the tasksnewThreads
- If TRUE, each task is started in it's own thread, if FALSE the tasks are executed in the timers thread
-
-
Method Detail
-
schedule
public TimerTask schedule(TimerTask task, Date time, boolean allowMultiple)
- See Also:
Timer.schedule(TimerTask, Date)
-
schedule
public TimerTask schedule(TimerTask task, Date firstTime, long period, boolean allowMultiple)
- See Also:
Timer.schedule(TimerTask, Date, long)
-
schedule
public TimerTask schedule(TimerTask task, long delay, boolean allowMultiple)
- See Also:
Timer.schedule(TimerTask, long)
-
schedule
public TimerTask schedule(TimerTask task, long delay, long period, boolean allowMultiple)
- See Also:
Timer.schedule(TimerTask, long, long)
-
scheduleAtFixedRate
public TimerTask scheduleAtFixedRate(TimerTask task, Date firstTime, long period, boolean allowMultiple)
-
-