Package com.yahoo.concurrent.maintenance
Class Maintainer
java.lang.Object
com.yahoo.concurrent.maintenance.Maintainer
- All Implemented Interfaces:
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 Summary
-
Constructor Summary
ConstructorDescriptionMaintainer
(String name, Duration interval, Clock clock, JobControl jobControl, JobMetrics jobMetrics, List<String> clusterHostnames, boolean ignoreCollision) -
Method Summary
Modifier and TypeMethodDescriptionprotected final double
asSuccessFactor
(int attempts, int failures) Convenience methods to convert attempts and failures into a success factorvoid
Waits for shutdown to complete, callingshutdown()
if this hasn't been done already.protected Duration
interval()
Returns the interval at which this job is set to runfinal void
lockAndMaintain
(boolean force) Run this while holding the job lockprotected abstract double
maintain()
Called once each time this maintenance job should run.final String
name()
Returns the simple name of this jobvoid
run()
void
shutdown()
Starts shutdown of this, typically by shutting down executors.final boolean
Returns whether this is being shut downfinal String
toString()
-
Field Details
-
log
-
-
Constructor Details
-
Maintainer
public Maintainer(String name, Duration interval, Clock clock, JobControl jobControl, JobMetrics jobMetrics, List<String> clusterHostnames, boolean ignoreCollision)
-
-
Method Details
-
run
public void run() -
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, callingshutdown()
if this hasn't been done already. -
shuttingDown
public final boolean shuttingDown()Returns whether this is being shut down -
toString
-
maintain
protected abstract double maintain()Called once each time this maintenance job should run.- Returns:
- the degree to which the run was successful - a number between 0 (no success), to 1 (complete success). Note that this indicates whether something is wrong, so e.g if the call did nothing because it should do nothing, 1.0 should be returned.
-
asSuccessFactor
protected final double asSuccessFactor(int attempts, int failures) Convenience methods to convert attempts and failures into a success factor -
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
Returns the simple name of this job
-