PHP flock () неблокирует все еще блокировать почему?

Я использую функцию flock (), чтобы проверить, запущен ли другой экземпляр скрипта, получив блокировку для временного файла, поэтому следующий экземпляр должен проверить, не заблокирован ли файл, иначе он остановится

<?php    
$fp = fopen("/var/tmp/your.lock", "w");
if (!flock($fp, LOCK_EX|LOCK_NB)) { // try to get exclusive lock, non-blocking
    die("Another instance is running");
} 

//my script 
sleep(10);
echo 'completed successfully';

Сценарий работает без проблем при двухкратном вызове файла одновременно с разными bro, wsers, в то время как он ожидает, если я одновременно открою два экземпляра из одного и того же браузера, т.е. первый вызов получит блокировку, а второй ожидает блокировки и не закрывается

Я знаю, что могут быть другие способы проверить, работает ли файл, экземпляр которого уже работает, но большинство из них сделает что-то, а затем отменит его, и в моем случае сценарий может завершиться в любое время, так как это может занять много времени или превысить лимит памяти или по любой причине

любая помощь ?

Ответы на вопрос(2)

Ваш ответ на вопрос