【发布时间】:2016-03-17 14:53:20
【问题描述】:
我想阻止 PHP 脚本同时运行。我通过检查“lock.txt”文件是否存在来实现这一点。然而,这需要几秒钟,即使它应该非常快。
<?php
if (!file_exists('lock.txt')) {
$lock = fopen('lock.txt','w');
////////////////////////////////////////////
......script that takes 30-160 seconds......
////////////////////////////////////////////
$jsonArray = array(utf8_encode('script')=>utf8_encode('finished'));
fclose($lock);
unlink('lock.txt');
} else {
$jsonArray = array(utf8_encode('script')=>utf8_encode('locked'));
}
echo json_encode($jsonArray);
?>
为什么需要这么长时间?它应该只是使初始 if 语句失败并快速回显json_encode。
我做错了吗?
【问题讨论】:
-
文件大小是多少?
-
7 KB(如果包含类,则为 670 KB,即使 if 语句未通过)。这需要很长时间,因为它从 API 请求数据(有点慢),而不是因为脚本很大。
-
如果你指的是 'lock.txt' 文件:它是 0 KB。
-
这是通过 Web 界面还是命令行?你也应该看看php.net/manual/en/function.flock.php
-
@displaynn 请告诉我你没有使用 IE。
标签: php file fopen exists unlink