Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > помогите с SQLite и fork |
Автор: DooZ 7.8.2007, 20:33 |
ругается что база заблокирована делаю все как написано на сайте создаю новое подключение к базе в каждом child'е секунд 20-30 работает нормально, потом пошли ошибки: DBD::SQLite: ![]() я уже и таймаут ставил, нифига не помогает как быть? где что поставить надо? подскажите плиз |
Автор: vadiml 8.8.2007, 16:29 |
может лучше connect сделать 1 раз в главном модуле и везде его использовать? весьма сократятся накладные расходы. ЗЫ с SQLite не заботал, но в мускуле и постгресе делал именно так. Если это в вебе, то можно использовать общую память. |
Автор: DooZ 8.8.2007, 21:39 | ||
в SQLite нельзя передавать указатель в чилды в форках это написано на сайте производителя так же так написано что надо в каждом чилде делать коннект заново вот я и обратился за помощью, мож кто сталкивался, как преодолеть эту гнустную блокировку правильно? как работать в форках правильно с SQLite в чилде надо каждый раз: select ... если нет то insert если есть то на выход вот где insert там ошибка |
Автор: DooZ 9.8.2007, 00:13 |
вроде работает вариант: в самом чилде делаем перед подключением: while (1) { $dbh=DBI->connect("dbi:SQLite:dbname=base.db","",""); sleep(1) and next if ($dbh->err && $dbh->err==5); last; } тут подключаемся (ошибка 5 это как раз блокировка) далее в месте где будем делать insert тот же цикл, только вместо подключения insert вставка на сколько верный такой способ? плиз подскажите если есть варианты более лучшие (sleep(1) тормозит на 1 секунду, что не годится)) подскажите? |
Автор: DooZ 12.8.2007, 21:05 |
неужели никто не работал с SQLite ??? |
Автор: DooZ 26.8.2007, 16:40 |
ап, может все же найдутся люди кто работал с этой базой + форки? |