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

时间:2019-05-07 05:40:27

标签: database grails grails-2.2

grails中最快的数据库连接检查是什么?我需要创建一个端点,该端点将被脚本一次又一次地调用,因此这需要高效。数据库不时关闭,此脚本将调用此api,该api将返回状态代码。根据此状态代码,机器人将知道数据库已关闭。如果是200,那么一切正常。

因此,我需要以非常有效的方式检查数据库连接是否完好。由于呼叫每隔几秒钟发生一次,因此检查数据库状态的最快方法是。我的想法是使用一个简单的gorm查询,例如Status.read(1)。如果有异常,则返回非200状态代码。有没有更有效的方法来快速检查数据库状态?

我非常感谢您的见解。我正在使用Grails 2.2。

1 个答案:

答案 0 :(得分:1)

为什么不仅要避免同时使用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
        }
    }
}

请原谅即时输入的任何错别字或其他内容。