Class Maintainer

java.lang.Object
com.yahoo.concurrent.maintenance.Maintainer
All Implemented Interfaces:
Runnable

public abstract class Maintainer extends Object implements Runnable
The base class for maintainers. A maintainer is some job which runs at a fixed rate to perform maintenance tasks.
Author:
bratseth, mpolden, jonmv
  • Field Details

    • log

      protected final Logger log
  • Constructor Details

  • Method Details

    • run

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

      public void shutdown()
      Starts shutdown of this, typically by shutting down executors. awaitShutdown() waits for shutdown to complete.
    • awaitShutdown

      public void awaitShutdown()
      Waits for shutdown to complete, calling shutdown() if this hasn't been done already.
    • shuttingDown

      public final boolean shuttingDown()
      Returns whether this is being shut down
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • maintain

      protected abstract double maintain()
      Called once each time this maintenance job should run.
      Returns:
      the degree to which the run was deviated from the successFactorBaseline - a number between -1 (no success), to 0 (complete success). Note that this indicates whether something is wrong, so e.g if the call did nothing because it should do nothing, 0.0 should be returned.
    • asSuccessFactorDeviation

      protected final double asSuccessFactorDeviation(int attempts, int failures)
      Convenience methods to convert attempts and failures into a success factor, and return
    • interval

      protected Duration interval()
      Returns the interval at which this job is set to run
    • lockAndMaintain

      public final void lockAndMaintain(boolean force)
      Run this while holding the job lock
    • name

      public final String name()
      Returns the simple name of this job