[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