Package com.yahoo.concurrent.maintenance
Class Maintainer
- java.lang.Object
-
- com.yahoo.concurrent.maintenance.Maintainer
-
-
Constructor Summary
Constructors Constructor Description Maintainer(String name, Duration interval, Instant startedAt, JobControl jobControl, JobMetrics jobMetrics, List<String> clusterHostnames, boolean ignoreCollision)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected double
asSuccessFactor(int attempts, int failures)
Convenience methods to convert attempts and failures into a success factorvoid
awaitShutdown()
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 runvoid
lockAndMaintain(boolean force)
Run this while holding the job lockprotected abstract double
maintain()
Called once each time this maintenance job should run.String
name()
Returns the simple name of this jobvoid
run()
void
shutdown()
Starts shutdown of this, typically by shutting down executors.boolean
shuttingDown()
Returns whether this is being shut downString
toString()
-
-
-
Field Detail
-
log
protected final Logger log
-
-
Constructor Detail
-
Maintainer
public Maintainer(String name, Duration interval, Instant startedAt, JobControl jobControl, JobMetrics jobMetrics, List<String> clusterHostnames, boolean ignoreCollision)
-
-
Method Detail
-
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
-
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
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
-
-