Php Wget在第一次执行后休眠

Php Wget在第一次执行后休眠,php,codeigniter,command-line-interface,wget,Php,Codeigniter,Command Line Interface,Wget,我有以下php exec行: exec('wget http://myurllinktofunction?id='.$insert_id .' > /dev/null &'); 这将在if条件下触发,我想做的是让wget调用进入睡眠状态,比如说60秒,在这段时间里不要对exec进行任何调用,还要注意的是,我不希望if条件为true时等待睡眠:我举个例子: if($weight>15000){ $insert_id = $this->db->insert_

我有以下php exec行:

exec('wget http://myurllinktofunction?id='.$insert_id .' > /dev/null &');
这将在if条件下触发,我想做的是让wget调用进入睡眠状态,比如说60秒,在这段时间里不要对exec进行任何调用,还要注意的是,我不希望if条件为true时等待睡眠:我举个例子:

if($weight>15000){
    $insert_id = $this->db->insert_id();
    exec('wget myurllinktofunction?id='.$insert_id .' > /dev/null &');
                                    }
    $this->_issue_success();
    break;

我希望这个流在$weight变量中,我将得到一个值,一次一个,比如一个值列表。当条件$weight>15000为真时,执行我的if,然后将我的exec休眠60秒(该wget不会在60秒内执行),但完成问题_success(),如果它未处于睡眠状态,请再次执行它并执行相同的流程。

据我所知,这可能会对您有所帮助:

$timer = 0;
$seconds = 60;

if($weight>15000){
    $insert_id = $this->db->insert_id();

    for($i=0;$i<$seconds;$i++){
            sleep(1);
            $timer++;

            if($timer == 60){
                    exec('wget myurllinktofunction?id='.$insert_id .' > /dev/null &');
            }

            $this->_issue_success();
            break;
    }
}
$timer=0;
$seconds=60;
如果($weight>15000){
$insert_id=$this->db->insert_id();
对于($i=0;$i_发行成功();
打破
}
}

需要注意的是,有更好的方法发出GET请求,而不需要像代码那样涉及潜在的CLI注入。cURL可以处理这个问题,可能需要多编写一两行代码。