Package hudson.model
Class AperiodicWork
- java.lang.Object
-
- java.util.TimerTask
-
- hudson.triggers.SafeTimerTask
-
- hudson.model.AperiodicWork
-
- All Implemented Interfaces:
ExtensionPoint
,Runnable
- Direct Known Subclasses:
AsyncAperiodicWork
public abstract class AperiodicWork extends SafeTimerTask implements ExtensionPoint
Extension point which allows scheduling a task with variable interval. Interval in evaluated every time before next task is scheduled by callinggetRecurrencePeriod()
. Task to be scheduled is obtain by callinggetNewInstance()
.This class is similar to
PeriodicWork
. The main difference is in re-evaluating delay interval every time. SeePeriodicWork
for details. Analog ofAsyncPeriodicWork
isAsyncAperiodicWork
.- Since:
- 1.410
- Author:
- vjuranek
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class hudson.triggers.SafeTimerTask
SafeTimerTask.ExceptionRunnable
-
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
-
Constructor Summary
Constructors Constructor Description AperiodicWork()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static ExtensionList<AperiodicWork>
all()
Returns all the registeredAperiodicWork
s.protected abstract void
doAperiodicRun()
void
doRun()
long
getInitialDelay()
Gets the number of milliseconds till the first execution.abstract AperiodicWork
getNewInstance()
Gets new instance of task to be executed.abstract long
getRecurrencePeriod()
Gets the number of milliseconds between successive executions.static void
init()
-
Methods inherited from class hudson.triggers.SafeTimerTask
getLogsRoot, of, run
-
Methods inherited from class java.util.TimerTask
cancel, scheduledExecutionTime
-
-
-
-
Field Detail
-
logger
protected final Logger logger
-
-
Method Detail
-
getRecurrencePeriod
public abstract long getRecurrencePeriod()
Gets the number of milliseconds between successive executions.Jenkins calls this method every time the timer task is scheduled.
-
getNewInstance
public abstract AperiodicWork getNewInstance()
Gets new instance of task to be executed. Method should return new instance each time, as there no check, if previously scheduled task already finished. Returning same instance could lead to throwingIllegalStateException
(especially in case ofAsyncAperiodicWork
) and therefore scheduling of next tasks will be broken.- Returns:
- AperiodicWork - timer task instance to be executed
-
getInitialDelay
public long getInitialDelay()
Gets the number of milliseconds till the first execution.By default it chooses the value randomly between 0 and
getRecurrencePeriod()
-
doRun
public final void doRun() throws Exception
- Specified by:
doRun
in classSafeTimerTask
- Throws:
Exception
-
init
@Initializer(after=JOB_CONFIG_ADAPTED) public static void init()
-
doAperiodicRun
protected abstract void doAperiodicRun()
-
all
public static ExtensionList<AperiodicWork> all()
Returns all the registeredAperiodicWork
s.
-
-