эффективный способ проверить соединение с базой данных? - PullRequest
0 голосов
/ 07 мая 2019

Какая самая быстрая проверка соединения с базой данных в Grails? Мне нужно создать конечную точку, которая будет вызываться снова и снова скриптом, поэтому это должно быть эффективно. Время от времени база данных отключается, и этот скрипт будет вызывать этот API, который будет возвращать код состояния. На основании этого кода состояния бот будет знать, что база данных не работает. Если это 200, то все в порядке.

Так что мне нужно проверить, не повреждено ли соединение с базой данных, очень эффективным способом. Поскольку вызов происходит каждые несколько секунд, это самый быстрый способ проверить состояние базы данных. Моя мысль состоит в том, чтобы использовать простой запрос gorm, такой как Status.read (1). Если есть исключение, верните код состояния не 200. Есть ли более эффективный способ быстрой проверки состояния базы данных?

Я ценю любые идеи. Я использую Grails 2.2.

1 Ответ

1 голос
/ 07 мая 2019

Почему бы просто не избегать одновременного использования 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
        }
    }
}

Прошу прощения за любые опечатки или все, что было написано на лету.

...