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