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

时间:2016-02-08 08:13:17

标签: java dropwizard jdbi

我正在使用带有JDBI的Drowizard 0.9.2连接到我的MySql Server。 现在,如果我的应用程序由于异步部署而启动,我的MySql数据库可能会处于非活动状态。然后,我希望我的应用程序循环并检查每5秒左右是否可以访问数据库。

如何通过上述框架实现这一目标?

1 个答案:

答案 0 :(得分:1)

就是这样,我找到了一个适合我的解决方案。

此方法检查连接。如果它返回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的私人成员。