![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
noneim |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 1 Регистрация: 8.6.2010 Пользователь №: 1792 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
На данный момент есть программа, использующая подключение к БД sqlite:
Инициализация:
Далее в разных потоках:
Но недавно прочитал , что оказывается так нельзя делать. Хотя вроде бы тестил и под windows и под Linux, работало без багов. Интересует надежность такого применения, на данных момент демон нормально держит uptime несколько дней, но вдруг возникнут какие-нибудь неожиданные баги? |
|
|
![]() |
512es |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 135 Регистрация: 31.10.2008 Пользователь №: 407 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Недавно проводил стресс тесты. Методом экспериментов выяснил что работать с одним соединением в двух потоках лучше, чем с двумя отдельными. Хотя в доках по Qt написано что этого делать нельзя..
На деле разница получается в том что, когда одно соединение используется, второй поток блокируется. А если несколько соединений с одним файлом базы то второй поток иногда получает отказ в выполнении запроса. Постгрес в нескольких потоках вообще начинает страшно глючить, а склайт работает... А по теме советую всётаки вывести работу с базой в отдельный поток, ака db writer, и присылать в него данные через сигналы и слоты в режиме очереди. Тогда работать будет вообще идеально. Тем более, если вдруг база не успеет записать данные до получения новых, они просто выстроятся в очередь и запишутся чуть позже, ничего не теряя. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 19:53 |