woonem
@woonem

Как заблокировать чтение файла другими копиями скрипта на время чтения текущей копией?

Как сделать блокировку на чтение файла в php во время чтения?
В разделяемой блокировке меня смущает слово "разделяемая".

Я делаю watchdog для демона на php.
Демон - это обычный бесконечный цикл с отключенным тайм-аутом.
Watchdog запускается при каждом запросе index.php пользователем.
daemon.php каждые 2 минуты записывает в файл daemon.active значение date('Ymdhi').
А index.php проверяет значение daemon.active
таким выражением
(file_get_contents('./daemon.active')+3)<date('Ymdhi')
и выполняет
ping('http://'.$host.'/daemon.php'), если выражение верно.
В htaccess запрещен доступ к daemon.php со всех IP, кроме localhost, чтоб избежать одновременного исполнения двух и более демонов.
Как сделать блокировку на чтение файла daemon.active, пока его читает index.php, чтоб daemon.php не вызвался несколько раз, если index.php запустится одновременно несколько раз.
  • Вопрос задан
  • 1650 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы