[Moscow.pm] Синхронно-асинхронная инициализация одинаковых процессов
Evgeniy Kosov
evgeniy на kosov.su
Пн Мар 22 02:57:13 PDT 2010
Kaltashkin Eugene wrote:
> 22.03.2010 12:46, Sergey Aleynikov пишет:
>> Hello,
>>
>> 22 марта 2010 г. 15:32 пользователь Kaltashkin Eugene
>> <zhecka на gmail.com> написал:
>>
>>> Вариант с lock файлом, который выставляется при запуске "первого"
>>> процесса хорош, но
>>> иногда не срабатывает и два процесса всё равно загружают данные в
>>> хранилище
>>> перетирая друг друга.
>>>
>> А вы как именно делаете это? Используете какой-то модуль, или
>> самописный лок? Если самописный - то возможны ошибки в реализации.
>>
> хм. всё как бы просто.
>
> $lockfile = "/var/tmp/pradm_memcached_config_load.lock";
> if(!-f $lockfile)
> {
> print STDERR "$$ Creating lock file\n";
> open OUT,">$lockfile" or die "Cannot write to $lockfile $!";
> print OUT $$;
> close OUT;
> $lock = 1;
> }
> else
> {
> undef $lock;
> print STDERR "$$ Lock file already exist\n";
> }
>
Эмм.. Кагбэ не очень.. неправильно так делать.
Юзайте что-нить с CPAN:
http://search.cpan.org/search?query=Lock+file&mode=all
--
С уважением,
Евгений Косов
Подробная информация о списке рассылки Moscow-pm