java - 检查连接并最终使用 dropwizard 0.9.2 和 JDBI 重新连接

标签 java dropwizard jdbi

我正在使用 Drowizard 0.9.2 和 JDBI 连接到我的 MySql 服务器。 现在,如果我的应用程序由于异步部署而启动,我的 MySql 数据库可能不处于 Activity 状态。然后我希望我的应用程序循环并每 5 秒左右检查一次是否可以到达数据库。

上面提到的框架怎么可能做到这一点?

最佳答案

仅供引用,我找到了适合我的解决方案。

此方法检查连接。如果它返回 false,我将进入一个同步循环,在可能的情况下进行检查(并建立连接)。

public boolean checkForConnection() {
Handle handle = null;
try {
  jdbi = factory.build(environment, config.getDatabaseFactory(), "postgresql");
   handle = jdbi.open();
} catch (Exception e) {
  LOGGER.error("Error while checking Postgres connection.");
  return false;
} finally {
  try {
    if(handle != null){
      handle.close();
    }
  } catch (Exception e){
    LOGGER.error("Error trying to close connection");
    return false;
  }
}
return true;
}

遗憾的是,我无法使用 ConnectionFactory,因为它是 DBI 的私有(private)成员。

关于java - 检查连接并最终使用 dropwizard 0.9.2 和 JDBI 重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35264948/

相关文章:

java - JDBI 如何在防止 SQL 注入(inject)的同时动态创建 WHERE 子句?

Java/android : Help understanding this construct, 它是方法还是匿名类?

java - 使用 dropwizard 时 config.yml 为 "maxFileSize must be specified"

sql - 当使用 JDBI 从和到日期都是可选的时,如何在日期范围之间查询?

java - Dropwizard JWT 工作流程

mysql - 在编写代码时不知道哪些列的情况下更新 MYSQL 数据库中的行?

java - JDBI (3) 对 bean 有非对称支持吗?

java - 检查设备是否支持 Unicode?

java - 什么时候应该在 Java 中使用本地类?

java - 为什么我不能在 JFrame 上调用 add() 而必须在容器上调用它?