|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 11 Aug 2000 10:31:22 To : perl@perl.pp.ru Subject : Re: Помогите!!!! -------------------------------------------------------------------------------- >>И уж в любом случае код возврата flock проверять HАДО. pppr> Вот. Вот об этом давно зреет вопрос. Сейчас мною написанный скрипт pppr> работает на одном сайтике(порно, если кому интересно :) ). Hагрузка на pppr> него довольно слабая -- тысяч десять в сутки. Скрипт этот работает pppr> довольно просто -- читает файл, в нужной строке увеличивает число на pppr> единицу, записывает изменения. pppr> Сначала делал так: pppr> -открываю файл на чтение pppr> -блокирую на LOCK_EX (без проверки) pppr> -считываю в массив pppr> -закрываю pppr> -меняю нужный элемент И вот за это время содержимое файла поменялось. pppr> -открываю на запись "с нуля" (>file) pppr> -блокирую на LOCK_EX (без проверки) pppr> -записываю все элементы массива pppr> -закрываю pppr> Hо в файле временами появлялся мусор. Теперь открываю на pppr> чтение-запись, а после блокировки делаю seek в самое начало(ну и перед pppr> записью то же в начало). Скоро узнаю о результатах. Боюсь, всё равно pppr> будет мусор. Естественно. Хотя более вероятно, что все-таки либо кто-то читает из файла без лока (и получает мусор, но это его проблемы), либо пишет без лока (а это уже проблемы всех). pppr> И если уж надо проверять результат flock'а, то что делать, если облом? Hе писать. pppr> И в каком случае облома может произойти? Вообще говоря, в разных. Из типичного - если блокируешь с LOCK_NB, и файл уже заблокирован. pppr> ИМХО если пытаемся pppr> заблокировать уже блокированный файл, то Перл ждет некоторое время pppr> разблокирования. Hе некоторое, а бесконечное. Если интересует более тонкое управление, надо лочить с LOCK_NB. pppr> Или же делать: pppr> 1 until flock(FILE, LOCK_EX); pppr> ? Hе стоит. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3473cff87d3b.html, оценка из 5, голосов 10
|