Задать вопрос
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 запустится одновременно несколько раз.
  • Вопрос задан
  • 1774 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы