如何确保一次加载PHP脚本

IVI*_*zaM 1 php

我有一个PHP的cronjob系统.我有一个名为cron.php的文件,想要检查它是否未加载,加载它.对我来说这个文件只运行一次非常重要,我需要定义它已经运行的方式.我不能使用任何系统功能,如exec,system,...你有任何解决方案吗?

注意:我通过CURL运行我的脚本,include_one和require_once不适用于这种情况.

ste*_*ewe 7

您可以使用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)