spring Sping Boot Actuator -禁用默认调度间隔

57hvy0tb  于 2023-09-29  发布在  Spring
关注(0)|答案(2)|浏览(128)

我正在为我的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

5ktev3wc

5ktev3wc1#

Sping Boot 从不自动调用自己的健康端点。如果它每5分钟被调用一次,那么它是在您部署应用程序的环境中执行的。

5lhxktic

5lhxktic2#

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

相关问题