Package org.elasticsearch.threadpool
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.-
Method Summary
Modifier and TypeMethodDescriptionboolean
cancel()
Cancel the execution of this object.void
doRun()
This method has the same semantics asRunnable.run()
boolean
Check if the execution has been cancelledvoid
onAfter()
This method is called in a finally block after successful execution or on a rejection.void
This method is invoked for all exception thrown byAbstractRunnable.doRun()
void
This should be executed if the thread-pool executing this action rejected the execution.toString()
Methods inherited from class org.elasticsearch.common.util.concurrent.AbstractRunnable
isForceExecution, run
-
Method Details
-
cancel
public boolean cancel()Description copied from interface:Scheduler.Cancellable
Cancel the execution of this object. This method is idempotent.- Specified by:
cancel
in interfaceScheduler.Cancellable
-
isCancelled
public boolean isCancelled()Description copied from interface:Scheduler.Cancellable
Check if the execution has been cancelled- Specified by:
isCancelled
in interfaceScheduler.Cancellable
- Returns:
- true if cancelled
-
doRun
public void doRun()Description copied from class:AbstractRunnable
This method has the same semantics asRunnable.run()
- Specified by:
doRun
in classAbstractRunnable
-
onFailure
Description copied from class:AbstractRunnable
This method is invoked for all exception thrown byAbstractRunnable.doRun()
- Specified by:
onFailure
in classAbstractRunnable
-
onRejection
Description copied from class:AbstractRunnable
This should be executed if the thread-pool executing this action rejected the execution. The default implementation forwards toAbstractRunnable.onFailure(Exception)
- Overrides:
onRejection
in classAbstractRunnable
-
onAfter
public void onAfter()Description copied from class:AbstractRunnable
This method is called in a finally block after successful execution or on a rejection.- Overrides:
onAfter
in classAbstractRunnable
-
toString
-