我正在使用带有JDBI的Drowizard 0.9.2连接到我的MySql Server。 现在,如果我的应用程序由于异步部署而启动,我的MySql数据库可能会处于非活动状态。然后,我希望我的应用程序循环并检查每5秒左右是否可以访问数据库。
如何通过上述框架实现这一目标?
答案 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的私人成员。