弹簧执行器运行状况检查 - 如何确保存在与数据库的活动连接

时间:2018-04-30 12:55:38

标签: spring spring-boot spring-boot-actuator

我希望仅在我的应用程序启动并运行且存在与数据库的活动连接时才返回状态ok和200代码。 健康检查的通缉行为是:

  • 如果应用正在运行但数据库已关闭 - DOWN
  • 如果应用已关闭且数据库已启动 - DOWN
  • 如果应用程序已启动并且存在与数据库的活动连接 - UP

所以我创建了一个自定义运行状况检查类,但我不知道如何检查数据库连接是否处于活动状态并且以弹簧方式有效

@Component
public class HealthCheck implements HealthIndicator {

  @Override
  public Health health() {
      int errorCode = check();
      if (errorCode != 0) {
          return Health.down()
          .withDetail("Error Code", errorCode).build();
    }
    return Health.up().build();
 }

 public int check() {
    // Check if there is an active connection to the database
    return 0;
 }
}

0 个答案:

没有答案