Class AbstractAsyncTask

java.lang.Object
org.elasticsearch.common.util.concurrent.AbstractAsyncTask
All Implemented Interfaces:
Closeable, AutoCloseable, Runnable

public abstract class AbstractAsyncTask extends Object implements Runnable, Closeable
A base class for tasks that need to repeat.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    AbstractAsyncTask(org.apache.logging.log4j.Logger logger, ThreadPool threadPool, org.elasticsearch.core.TimeValue interval, boolean autoReschedule)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Cancel any scheduled run, but do not prevent subsequent restarts.
    void
    Cancel any scheduled run
    org.elasticsearch.core.TimeValue
     
    protected String
    Use the same threadpool by default.
    boolean
     
    boolean
     
    protected abstract boolean
    Test any external conditions that determine whether the task should be scheduled.
    void
    Schedule the task to run after the configured interval if it is not closed and any further conditions imposed by derived classes are met.
    final void
    run()
     
    protected abstract void
     
    void
    setInterval(org.elasticsearch.core.TimeValue interval)
    Change the interval between runs.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AbstractAsyncTask

      protected AbstractAsyncTask(org.apache.logging.log4j.Logger logger, ThreadPool threadPool, org.elasticsearch.core.TimeValue interval, boolean autoReschedule)
  • Method Details

    • setInterval

      public void setInterval(org.elasticsearch.core.TimeValue interval)
      Change the interval between runs. If a future run is scheduled then this will reschedule it.
      Parameters:
      interval - The new interval between runs.
    • getInterval

      public org.elasticsearch.core.TimeValue getInterval()
    • mustReschedule

      protected abstract boolean mustReschedule()
      Test any external conditions that determine whether the task should be scheduled. This method does *not* need to test if the task is closed, as being closed automatically prevents scheduling.
      Returns:
      Should the task be scheduled to run?
    • rescheduleIfNecessary

      public void rescheduleIfNecessary()
      Schedule the task to run after the configured interval if it is not closed and any further conditions imposed by derived classes are met. Any previously scheduled invocation is cancelled.
    • isScheduled

      public boolean isScheduled()
    • cancel

      public void cancel()
      Cancel any scheduled run, but do not prevent subsequent restarts.
    • close

      public void close()
      Cancel any scheduled run
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • isClosed

      public boolean isClosed()
    • run

      public final void run()
      Specified by:
      run in interface Runnable
    • runInternal

      protected abstract void runInternal()
    • getThreadPool

      protected String getThreadPool()
      Use the same threadpool by default. Derived classes can change this if required.