我正在为我的Sping Boot 应用程序实现自定义Actuator HealthIndicators。
它们看起来像这样:
public class MyClass implements HealthIndicator {
@Override
public Health health() {
LOGGER.info("Checking Service Health...");
try {
String url = this.getExternalServiceUrl().concat("/heartbeat");
JSONObject response = this.getResponse(url, null);
Boolean responseSuccess = response.getBoolean("success");
Boolean serviceAvailable = ...
if (responseSuccess && serviceAvailable) {
return Health.up().withDetail(...).build();
} else {
return Health.down().withDetail(...).build();
}
} catch (Exception e) {
return Health.down().withDetail(...).build();
}
}
}
从本质上讲,我的应用程序依赖于其他外部Web服务,当我调用我的心跳页面时,我希望它ping这些服务的心跳,并相应地更改我的应用程序的UP或DOWN状态。
我的问题是,默认情况下,Actuator有一个大约5分钟的预定时间,在这个时间内,它将自动调用/actuator/health
端点。我想让它失效。
我只希望在代码中显式调用健康端点时调用它。
有人知道如何禁用执行器默认调度?
我使用spring-boot-actuator:2.1.3.RELEASE
2条答案
按热度按时间5ktev3wc1#
Sping Boot 从不自动调用自己的健康端点。如果它每5分钟被调用一次,那么它是在您部署应用程序的环境中执行的。
5lhxktic2#
我们也面临着类似的问题,然后发现有一个内部公司库在特定的时间间隔内调用健康端点。