Class AbstractAsyncTask

    • Constructor Detail

      • AbstractAsyncTask

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

      • setInterval

        public void setInterval​(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 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.
      • 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.