Package org.elasticsearch.threadpool
Interface Scheduler
- All Known Implementing Classes:
- ThreadPool
public interface Scheduler
Scheduler that allows to schedule one-shot and periodic commands.
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceThis interface represents an object whose execution may be cancelled during runtime.static classThis class encapsulates the scheduling of aRunnablethat needs to be repeated on a interval.static classThis subclass ensures to properly bubble up Throwable instances of both type Error and Exception thrown in submitted/scheduled tasks to the uncaught exception handlerstatic interfaceA scheduled cancellable allow cancelling and reading the remaining delay of a scheduled task.
- 
Method SummaryModifier and TypeMethodDescriptionstatic booleanawaitTermination(ScheduledThreadPoolExecutor scheduledThreadPoolExecutor, long timeout, TimeUnit timeUnit)static ScheduledThreadPoolExecutorinitScheduler(Settings settings, String schedulerName)Create a scheduler that can be used client side.Schedules a one-shot command to be run after a given delay.default Scheduler.CancellablescheduleWithFixedDelay(Runnable command, org.elasticsearch.core.TimeValue interval, String executor)Schedules a periodic action that runs on scheduler thread.static booleanterminate(ScheduledThreadPoolExecutor scheduledThreadPoolExecutor, long timeout, TimeUnit timeUnit)static Scheduler.CancellablewrapAsCancellable(Future<?> future)Utility method to wrap aFutureas aCancellablewrapAsScheduledCancellable(ScheduledFuture<?> scheduledFuture)Utility method to wrap aScheduledFutureas aScheduledCancellable
- 
Method Details- 
initSchedulerCreate a scheduler that can be used client side. Server side, please useThreadPool.scheduleinstead. Notice that if any scheduled jobs fail with an exception, these will bubble up to the uncaught exception handler where they will be logged as a warning. This includes jobs started using execute, submit and schedule.- Parameters:
- settings- the settings to use
- schedulerName- a string that identifies the threads belonging to this scheduler
- Returns:
- executor
 
- 
terminatestatic boolean terminate(ScheduledThreadPoolExecutor scheduledThreadPoolExecutor, long timeout, TimeUnit timeUnit)
- 
awaitTerminationstatic boolean awaitTermination(ScheduledThreadPoolExecutor scheduledThreadPoolExecutor, long timeout, TimeUnit timeUnit)
- 
scheduleScheduler.ScheduledCancellable schedule(Runnable command, org.elasticsearch.core.TimeValue delay, String executor)Schedules a one-shot command to be run after a given delay. The command is run in the context of the calling thread. The command runs on scheduler thread. Do not run blocking calls on the scheduler thread. Subclasses may allow to execute on a different executor, in which case blocking calls are allowed.- Parameters:
- command- the command to run
- delay- delay before the task executes
- executor- the name of the executor that has to execute this task. Ignored in the default implementation but can be used by subclasses that support multiple executors.
- Returns:
- a ScheduledFuture who's get will return when the task has been added to its target thread pool and throws an exception if the task is canceled before it was added to its target thread pool. Once the task has been added to its target thread pool the ScheduledFuture cannot interact with it.
- Throws:
- EsRejectedExecutionException- if the task cannot be scheduled for execution
 
- 
scheduleWithFixedDelaydefault Scheduler.Cancellable scheduleWithFixedDelay(Runnable command, org.elasticsearch.core.TimeValue interval, String executor)Schedules a periodic action that runs on scheduler thread. Do not run blocking calls on the scheduler thread. Subclasses may allow to execute on a different executor, in which case blocking calls are allowed.- Parameters:
- command- the action to take
- interval- the delay interval
- executor- the name of the executor that has to execute this task. Ignored in the default implementation but can be used by subclasses that support multiple executors.
- Returns:
- a Scheduler.Cancellablethat can be used to cancel the subsequent runs of the command. If the command is running, it will not be interrupted.
 
- 
wrapAsCancellableUtility method to wrap aFutureas aCancellable- Parameters:
- future- the future to wrap
- Returns:
- a cancellable delegating to the future
 
- 
wrapAsScheduledCancellablestatic Scheduler.ScheduledCancellable wrapAsScheduledCancellable(ScheduledFuture<?> scheduledFuture)Utility method to wrap aScheduledFutureas aScheduledCancellable- Parameters:
- scheduledFuture- the scheduled future to wrap
- Returns:
- a SchedulecCancellable delegating to the scheduledFuture
 
 
-