|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 15 Nov 2000 18:31:23 To : Andrey Lastochkin Subject : Re: apache -------------------------------------------------------------------------------- <Andrey_Lastochkin@p50.f18.n5066.z2.fidonet.org> wrote: AL>>> данных. Hа клиенте, в браузере, я нажимаю "Остановить". Апач AL>>> киляет незавершенный выполняться скрипт. AL>>> Вопрос: что можно сделать? AC>> Ответ на второй вопрос: локи, если есть возможность, надо ставить не AC>> лок-файлами, а локами на открытые файлы или IPC'шными семафорами. И AC>> только если у тебя DOS-based система (DOS, Win 9x, Win ME), тогда AC>> увы... AL> у меня Unix, мне непонятно следующее: AL> допустим, у меня есть файл, который скрипт полностью обновляет исходя из AL> предыдущих данных (я кэширую squid'овые log'и, создаю промежуточный AL> отчет)... AL> как мне узнать залочен он или нет если мне надо его открыть для записи? AL> ведь если я напишу AL> open FILE, ">$somefile"; AL> flock FILE, LOCK_EX || exit AL> если этот файл уже был флокнуть, он open'ом затрется намертво, а как мне AL> сделать чтобы просто узнать залочен или нет open FILE, "+< $somefile"; flock FILE, LOCK_EX | LOCK_NB || exit; Если ты будешь делать обычный лок, то он блокирующий, т.е. скрипт застрянет в flock до тех пор, пока ему не освободят хендл. AL> наверное я сделаю так: повешу обработчик на SIGPIPE и сделаю lock-файл AL> обычный (вдруг надо будет ограничить запуск скрипта двум человекам или AL> трем) Hадеюсь, лок-файл ты делаешь посредством sysopen с O_CREAT | O_EXCL? -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/17121029e29be.html, оценка из 5, голосов 10
|