[Moscow.pm] Синхронно-асинхронная инициализация одинаковых процессов

Kaltashkin Eugene zhecka на gmail.com
Пн Мар 22 02:49:48 PDT 2010


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";
}



Подробная информация о списке рассылки Moscow-pm