Class Scheduler.ReschedulingRunnable

java.lang.Object
org.elasticsearch.common.util.concurrent.AbstractRunnable
org.elasticsearch.threadpool.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.