检查数据库连接的有效方法?
efficient way to check database connection?
grails 中最快的数据库连接检查是什么?我需要创建一个将被脚本一次又一次调用的端点,因此这需要高效。数据库不时出现故障,此脚本将调用此 api 将 return 状态代码。基于此状态代码,机器人将知道数据库已关闭。如果它是 200 那么一切正常。
所以我需要以非常有效的方式检查数据库连接是否完好无损。由于调用每隔几秒发生一次,因此检查数据库状态的最快方法是什么。我的想法是使用像 Status.read(1) 这样的简单 gorm 查询。如果有异常则 return 非 200 状态代码。有没有更有效的快速数据库状态检查方法?
我很感激任何见解。我正在使用 Grails 2.2。
为什么不完全避免同时使用 GORM 而只使用像 SELECT 1
这样的超级简单的数据库查询?将其放入服务中可能如下所示:
package my.example
class MyService {
def dataSource
def someTimeoutValue = 1000
boolean isDatabaseThere() {
try {
dataSource.connection.isValid(someTimeoutValue)
return true // everything is okay
} catch (Exception e) {
return false // everything is not okay
}
}
}
请原谅任何打字错误或任何内容,这是临时写的。
grails 中最快的数据库连接检查是什么?我需要创建一个将被脚本一次又一次调用的端点,因此这需要高效。数据库不时出现故障,此脚本将调用此 api 将 return 状态代码。基于此状态代码,机器人将知道数据库已关闭。如果它是 200 那么一切正常。
所以我需要以非常有效的方式检查数据库连接是否完好无损。由于调用每隔几秒发生一次,因此检查数据库状态的最快方法是什么。我的想法是使用像 Status.read(1) 这样的简单 gorm 查询。如果有异常则 return 非 200 状态代码。有没有更有效的快速数据库状态检查方法?
我很感激任何见解。我正在使用 Grails 2.2。
为什么不完全避免同时使用 GORM 而只使用像 SELECT 1
这样的超级简单的数据库查询?将其放入服务中可能如下所示:
package my.example
class MyService {
def dataSource
def someTimeoutValue = 1000
boolean isDatabaseThere() {
try {
dataSource.connection.isValid(someTimeoutValue)
return true // everything is okay
} catch (Exception e) {
return false // everything is not okay
}
}
}
请原谅任何打字错误或任何内容,这是临时写的。