Можно ли изменить частоту, с которой пружинный привод выполняет импульс работоспособности?
Я пытаюсь осмотреться, чтобы увидеть, как я могу изменить конечные точки своего привода (в частности, состояние здоровья), чтобы ограничить его частоту. Я хочу посмотреть, могу ли я настроить его так, чтобы он запускался раз в минуту для определенного набора данных (ex mail), но оставлял его для других?
Пока что я нигде не могу найти эту логику. Единственный известный мне способ создать собственный сервер здоровья:
@Component
@RefreshScope
public class HealthCheckService implements HealthIndicator, Closeable {
@Override
public Health health() {
// check if things are stale
if (System.currentTimeMillis() - this.lastUpdate.get() > this.serviceProperties.getMonitorFailedThreshold()) {
String errMsg = '[' + this.serviceName + "] health status has not been updated in over ["
+ this.serviceProperties.getMonitorFailedThreshold() + "] milliseconds. Last updated: ["
+ this.lastUpdate.get() + ']';
log.error(errMsg);
return Health.down().withDetail(this.serviceName, errMsg).build();
}
// trace level since this could be called a lot.
if (this.detailMsg != null) {
Health.status(this.status);
}
Health.Builder health = Health.status(this.status);
return health.build();
}
/**
* Scheduled, low latency health check.
*/
@Scheduled(fixedDelayString = "${health.update-delay:60000}")
public void healthUpdate() {
if (this.isRunning.get()) {
if (log.isDebugEnabled()) {
log.debug("Updating Health Status of [" + this.serviceName + "]. Last Status = ["
+ this.status.getCode() + ']');
}
// do some sort of checking and update the value appropriately.
this.status = Status.UP;
this.lastUpdate.set(System.currentTimeMillis());
if (log.isDebugEnabled()) {
log.debug("Health Status of [" + this.serviceName + "] updated to [" + this.status.getCode() + ']');
}
}
}
Я не уверен, есть ли способ установить это специально весной как конфигурацию, или единственный способ обойти это - создать собственный HealthIndicator?