Class Scheduler.ReschedulingRunnable

  • All Implemented Interfaces:
    Runnable, Scheduler.Cancellable
    Enclosing interface:
    Scheduler

    public static final class Scheduler.ReschedulingRunnable
    extends AbstractRunnable
    implements Scheduler.Cancellable
    This class encapsulates the scheduling of a Runnable that needs to be repeated on a interval. For example, checking a value for cleanup every second could be done by passing in a Runnable that can perform the check and the specified interval between executions of this runnable. NOTE: the runnable is only rescheduled to run again after completion of the runnable. For this class, completion means that the call to Runnable.run() returned or an exception was thrown and caught. In case of an exception, this class will log the exception and reschedule the runnable for its next execution. This differs from the ScheduledThreadPoolExecutor.scheduleWithFixedDelay(Runnable, long, long, TimeUnit) semantics as an exception there would terminate the rescheduling of the runnable.