我有 PHP 脚本,目前应该只运行一次。如果其他人在它已经工作时尝试再次启动它,第二个进程应该立即终止并显示错误消息。
当我第二次尝试启动下面的代码时,它会等待 10 秒并且什么都不打印,而不是立即打印错误消息。它出什么问题了?
注意:脚本是从浏览器启动的!在控制台中一切正常
<?
$fh = fopen(__FILE__, 'r');
if(! flock($fh, LOCK_EX) ){
fclose($fh);
die("Operation is already performed");
}
else{
sleep(10); //this is "some operation" stub
flock($fh, LOCK_UN); // unlock the file
fclose($fh);
}
?>