programming:php:flock
Flock - блокировка файлов
Моя блокировка в Битриксе:
$is_locked = MyLock::IsLocked('test.lock');
if(!$is_locked){
echo "=== [test.lock] Run sync ===\n";
//echo "Create file and lock it.\n";
$h = MyLock::Lock('test.lock');
echo "New file status locked:";
var_dump(MyLock::IsLocked('test.lock'));
$a = Sync::ad_resources_to_local();
print_r($a);
}else{
echo "=== [test.lock] Sync is runing ===\n";
}// Сохранение в $lock_file обязательно, иначе handle помрёт и файл автоматом закроется
if(!flock($lock_file = fopen("my_script.lock", 'w'), LOCK_EX | LOCK_NB))
die("Already runninng\n"); function mkfile($filename, $data='', $chmod=0644) {
if (($h = @fopen($filename, 'w')) && flock($h, LOCK_EX | LOCK_NB, $wouldblock) && !$wouldblock) {
@fwrite($h, $data);
@fclose($h);
@umask(0000);
@chmod($filename, $chmod);
flock($h, LOCK_UN);
return $data;
}
}
programming/php/flock.txt · Последнее изменение: 2017/03/27 11:26 — artur
