我有一个 index.php
脚本,用作 Google Code 网站上的提交后 URL。此脚本克隆一个目录并构建一个可能需要一些工作的项目。我想避免让此脚本并行运行多次。
如果另一个脚本已经在 session 中,我是否可以使用一种机制来避免执行该脚本?
最佳答案
您可以使用 flock使用 LOCK_EX
获得文件的独占锁。
例如:
<?php
$fp = fopen('/tmp/php-commit.lock', 'r+');
if (!flock($fp, LOCK_EX | LOCK_NB)) {
exit;
}
// ... do stuff
fclose($fp);
?>
对于 5.3.2 之后的 PHP 版本,您需要使用以下命令手动释放锁 羊群($fp, LOCK_UN);
关于php - 如何确保只有一个 PHP 脚本实例通过 Apache 运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018844/