Package hudson.model

Class PeriodicWork

All Implemented Interfaces:
ExtensionPoint, Runnable
Direct Known Subclasses:
AsyncPeriodicWork, HudsonHomeDiskUsageChecker, LoadStatistics.LoadStatisticsUpdater, MemoryUsageMonitor, NodeProvisioner.NodeProvisionerInvoker, Trigger.Cron

public abstract class PeriodicWork extends SafeTimerTask implements ExtensionPoint
Extension point to perform a periodic task in Hudson (through Timer.)

This extension point is useful if your plugin needs to perform some work in the background periodically (for example, monitoring, batch processing, garbage collection, etc.)

Put Extension on your class to have it picked up and registered automatically, or manually insert this to Trigger.timer.

This class is designed to run a short task. Implementations whose periodic work takes a long time to run should extend from AsyncPeriodicWork instead.

Author:
Kohsuke Kawaguchi
See Also:
  • Field Details

  • Constructor Details

    • PeriodicWork

      public PeriodicWork()
  • Method Details

    • getRecurrencePeriod

      public abstract long getRecurrencePeriod()
      Gets the number of milliseconds between successive executions.

      Hudson calls this method once to set up a recurring timer, instead of calling this each time after the previous execution completed. So this class cannot be used to implement a non-regular recurring timer.

      IOW, the method should always return the same value.

    • getInitialDelay

      public long getInitialDelay()
      Gets the number of milliseconds til the first execution.

      By default it chooses the value randomly between 0 and getRecurrencePeriod()

    • all

      public static ExtensionList<PeriodicWork> all()
      Returns all the registered PeriodicWorks.
    • init

      @Initializer(after=JOB_CONFIG_ADAPTED) public static void init()