Название: [РЕШЕНО]Частое открытие или постоянное соединение с БД? Отправлено: sergek от Август 05, 2020, 21:51 Коллеги,
стоит задача периодической передачи изменений в таблице БД на сервер. Сделано по таймеру, выполняется открытие соединения с БД (QSqlDatabase::database(connName)), выборка и отправка данных, после чего соединение закрывается (QSqlDatabase::removeDatabase(connName)). Эта функция выполняется с интервалом 0.5 секунды. Я бы подключился один раз и не закрывал подключение к БД, но функция работает 24x7, и у меня есть сомнение, не появятся сбои, к примеру, через месяц. Как считаете, описанный вариант имеет право на жизнь, или по-правильному сделать постоянное соединение с проверкой подключения и чего-то там еще? СУБД PosgtreSQL, версия 10 с чем-то, Ubuntu. Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: Пантер от Август 05, 2020, 23:06 Зачем тратить время на подключения/отключение? Пусть висит себе соединение, только делай реконнект если что не так пошло.
Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: sergek от Август 06, 2020, 08:42 Ок, спасибо.
Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: RedDog от Август 07, 2020, 22:05 Коннект к БД постоянный, его валидность проверять по таймеру запросом а-ля
Код: QSqlQuery("select true").isActive() Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: sergek от Август 07, 2020, 23:34 PS: проект в продакшене уже 4 года держит постоянно 24 подключения в режиме 24/7 (бывает перезапускается для обновления). Вот это я и хотел услышать, спасибо! А коннект проверить легко, есть isOpen(), проверять можно и без таймера, а перед каждым запросом. Собственно, QSqlDatabase::database(connName) по умолчанию открывает соединение. Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: RedDog от Август 08, 2020, 13:10 isopen не сработает, если сеть упала, она работает если в коде идёт подключение/отключение.
Если внешние факторы вмешались, будет возвращать истину. Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: sergek от Август 08, 2020, 18:24 "Мда. Плохо дело. Вся ... нафиг."
Название: Re: Частое открытие или постоянное соединение с БД? Отправлено: Пантер от Август 08, 2020, 22:09 Тебе достаточно будет переподключаться, если запрос зафэйлился.
|