Class Scheduler.ReschedulingRunnable

  • All Implemented Interfaces:
    java.lang.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.
    • Method Summary

      Modifier and Type Method Description
      boolean cancel()
      Cancel the execution of this object.
      void doRun()
      This method has the same semantics as Runnable.run()
      boolean isCancelled()
      Check if the execution has been cancelled
      void onAfter()
      This method is called in a finally block after successful execution or on a rejection.
      void onFailure​(java.lang.Exception e)
      This method is invoked for all exception thrown by AbstractRunnable.doRun()
      void onRejection​(java.lang.Exception e)
      This should be executed if the thread-pool executing this action rejected the execution.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait