Java Spring HealthIndicator-超时

Java Spring HealthIndicator-超时,java,spring,spring-boot,Java,Spring,Spring Boot,我们在应用程序中使用Spring引导健康检查。在一个已检查的应用程序上,DB似乎无法及时响应。我们使用的是DataSourceHealthIndicator,几秒钟后会有一个异常,这个异常很好,但是需要不同的时间来返回 我们可以在这个HealthIndicator上设置一个超时时间(很可能还有其他的超时时间),以便HealthIndicator在没有与数据库建立连接的情况下,最晚在2秒后报告错误 或者我们可以询问数据源是否还有可用的开放连接 我知道,我们应该解决这些连接的问题,我们已经在处理这个

我们在应用程序中使用Spring引导健康检查。在一个已检查的应用程序上,DB似乎无法及时响应。我们使用的是DataSourceHealthIndicator,几秒钟后会有一个异常,这个异常很好,但是需要不同的时间来返回

我们可以在这个HealthIndicator上设置一个超时时间(很可能还有其他的超时时间),以便HealthIndicator在没有与数据库建立连接的情况下,最晚在2秒后报告错误

或者我们可以询问数据源是否还有可用的开放连接


我知道,我们应该解决这些连接的问题,我们已经在处理这个问题,但是类似这样的健康检查也很好。

您可以在应用程序中禁用默认的db健康指示器。属性

management.health.db.enabled=false
并实现具有所需行为的自定义
HealthIndicator
,如前所述

在自定义的
HealthIndicator
实现中,您可以使用不同的
JdbcTemplate
,其所需超时值为2秒,如下所示:

JdbcTemplate jdbcTemplate = new JdbcTemplate(datasource);
jdbcTemplate.setQueryTimeout(2);
jdbcTemplate.execute(...);
如果execute调用引发异常,您的指示符应该返回
Health.down()
,否则应该返回
Health.up()