Class Scheduler.ReschedulingRunnable

All Implemented Interfaces:
java.lang.Runnable, Scheduler.Cancellable
Enclosing interface:

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 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
    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 org.elasticsearch.common.util.concurrent.AbstractRunnable

    isForceExecution, run

    Methods inherited from class java.lang.Object

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