use of io.vertigo.commons.daemon.Daemon in project vertigo by KleeGroup.
the class DaemonManagerImpl method checkDaemonsExecs.
@HealthChecked(name = "lastExecs", feature = "daemons")
public HealthMeasure checkDaemonsExecs() {
final List<DaemonStat> daemonStats = getStats();
final long failureCount = daemonStats.stream().filter(// to have a real indicator we use only daemon that have been executed at least once
daemonStat -> daemonStat.getCount() > 0).filter(daemonStat -> !daemonStat.isLastExecSuccess()).count();
// ---
final HealthMeasureBuilder healthMeasure = HealthMeasure.builder();
if (failureCount == 0) {
return healthMeasure.withGreenStatus().build();
} else if (failureCount < daemonStats.size()) {
return healthMeasure.withYellowStatus("At least one daemon failed", null).build();
}
return healthMeasure.withRedStatus("All daemons failed", null).build();
}
use of io.vertigo.commons.daemon.Daemon in project vertigo by KleeGroup.
the class DaemonManagerImpl method startDaemon.
/**
* Démarre un démon.
* Celui-ci aura été préalablement enregistré.
* Il sera lancé puis réexécuté périodiquement.
* L'instance du démon est créée par injection de dépendances.
*
* @param daemonDefinition Le démon à lancer.
*/
private void startDaemon(final DaemonDefinition daemonDefinition) {
Assertion.checkNotNull(daemonDefinition);
// -----
final Daemon daemon = createDaemon(daemonDefinition);
daemonExecutor.scheduleDaemon(daemonDefinition, daemon);
}
Aggregations