检查数据库连接的有效方法?

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
        }
    }
}

请原谅任何打字错误或任何内容,这是临时写的。