![]() |
|
|
![]()
|
|
| Finalist |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.5.2006 Репутация: нет Всего: 1 |
Здравствуйте!
лет 7 писал на пхп..надоело) щас тренируюсь в си++. Пишу многопоточный парсер одной соцсети, типа кастом клиент. прога логинится на сайт, сканит сообщения, сканит кто онлайн... При старте запускается параллельный поток в котором происходит работа с сайтом(собсно скан), и сигналит основному потоку результаты сканов... и есть небольшая проблема.. при периодическом сигнале (онлайн скан) oScaned(QList<QStringList>) из второстепенного потока, где-то после круга 5го или 6го выскакивает ошибка базы... "SQlError online scanned: unable to open database file Unable to execute statement" все 5 или 6 кругов все данные добросовестно пишутся в базу.. а потом ломается... всю реализацию сделал в классе worker, он создает потоки, и он же принимает сигналы от них. база открывается и используется только в нем. все методы, где я юзаю базу данных, защищены мютексом. пропускал через valgrind --leak-check=full --show-reachable=yes --track-origins=yes ./parser в том месте где происходит сбой ругается чета типа : invalid descriptor in syscall open(); куда девается дескриптор - непонятно) (Linux ubuntu, Qt Creator 2.0.0 Основан на Qt 4.7.0 (32-х битной)) Скачал с сайта qt.nokia.com в версии qt не уверен. вот слот который принимает данные из потока:
теперь функция createConnection();
и еще одна какая нибудь с базой для примера.. таймер основной формы откуда выводится колво юзеров онлайн на lcd дийплей.
Хотелось бы услышать что-то по поводу использования базы в резидентных программах. в скриптах не сложно - открыл закрыл.. а тут думать нада когда открыть, когда закрыть. нужно ли ресурсы освобождать? в общем как использовать базу оптимальнее всего. |
||||||
|
|||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
А почему нельзя открыть базу только один раз при запуске программы, а закрыть при завершении?
|
|||
|
||||
| Finalist |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 23.5.2006 Репутация: нет Всего: 1 |
таки да, убрал закрытие базы каждый раз, и вроде ужепол часа как крутится, и нормально.
я просто думал лучше закрывать базу во время простоя проги. ну нет, так нет) главное чтоб работало спс! буду пока тестить... |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |