Spring Boot Actuator - 禁用默认调度间隔

问题描述 投票:0回答:2

我正在为我的 Spring Boot 应用程序实现自定义执行器 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();
        }
    }
}

本质上,我的应用程序依赖于其他外部网络服务,当我调用我的心跳页面时,我希望它能够 ping 这些服务的心跳,并相应地更改我的应用程序的 UP 或 DOWN 状态。

我的问题是,默认情况下 Actuator 似乎有 5 分钟左右的预定时间,在该时间内它将自动调用

/actuator/health
端点。我想禁用此功能。

我只想在代码中显式调用健康端点时调用它。

有人知道如何禁用执行器默认调度吗?

我正在使用

spring-boot-actuator:2.1.3.RELEASE

spring spring-boot spring-boot-actuator
2个回答
3
投票

Spring Boot 永远不会自动调用自己的健康端点。如果每 5 分钟调用一次,则表明您部署应用程序的环境中正在执行此操作。


0
投票

我们也面临类似的问题,然后发现有内部公司库正在特定时间间隔调用健康端点。

© www.soinside.com 2019 - 2024. All rights reserved.