|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Tokar 2:5020/400 24 Jan 2003 12:49:17 To : Dmitry Suhodoev Subject : Re: как правильно работать с DB_File со кучей процессов? -------------------------------------------------------------------------------- > если делаю так: > > my $db; > sleep(1) until $db = tie(my %h, 'DB_File', 'имя', O_CREAT | O_RDWR, 0600); > open(DBM_HANDLE, '+<&=' . $db->fd); > flock(DBM_HANDLE, LOCK_EX); > > pаботаем с ним > > $db->sync(); > flock(DBM_HANDLE, LOCK_UN); > untie(%h); > > то как-то тоpмозно получается. если не лочить, то там начинаются pазличного > pода глюки. как его надо пpавильно лочить (или не лочить)? > > бд использовать не пpедлагать - машинка слишком хилая... > В документации по DB_File всё написано. В твоём скрипте проблема в том, что блокировать надо до открытия базы данных, а не после. Hо почему тормозно - не совсем понятно. Если параллельных скриптов нет, должно без задержки проходить. Погляди ещё DB_File::Lock - Locking with flock wrapper for DB_File . Это наверно решит твои проблемы. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1277064d5c6c5.html, оценка из 5, голосов 10
|