我有一个PHP的cronjob系统.我有一个名为cron.php的文件,想要检查它是否未加载,加载它.对我来说这个文件只运行一次非常重要,我需要定义它已经运行的方式.我不能使用任何系统功能,如exec,system,...你有任何解决方案吗?
注意:我通过CURL运行我的脚本,include_one和require_once不适用于这种情况.
您可以使用flock()锁定php文件本身,如下所示:
<?php
class Lock{
private $fp;
function __construct(){
$this->fp=fopen(__FILE__,'r');
if (!flock($this->fp,LOCK_EX|LOCK_NB)) {
die('already running !'.PHP_EOL);
}
}
function __destruct(){
flock($this->fp,LOCK_UN);
fclose($this->fp);
}
}
$lock=new Lock();
// simulate some processing
sleep(60);
echo "END";
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |