Задать вопрос
@Us59

Как вернуться назад и повторить условие через N секунд?

if (!empty($request)) {
foreach ($request as $value)
{
     $lock = fopen(__DIR__ . '/requests_logs/123.txt', 'c');
     if (!($lock && flock($lock, LOCK_EX | LOCK_NB))) {
      // файл используется
     } else { 
     // файл не используется другими сессиями/приложениями.
     }
}


Подскажите, если файл используется, проверка сработает?
И главный вопрос: Как можно сделать sleep(3) в случае если файл используется и вернуть действие заново, чтобы он попытался открыть файл снова через 3 секунды.. (зациклить пока не откроет в общем хочу)
  • Вопрос задан
  • 118 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@green_goo
Также возможно добавить константу LOCK_NB в качестве битовой маски к любой из вышеуказанных операций, если вы не хотите ждать, пока flock() получит блокировку.

https://www.php.net/manual/ru/function.flock.php
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽