当前位置: 代码迷 >> PHP >> php popen兑现多任务
  详细解决方案

php popen兑现多任务

热度:12   发布时间:2016-04-28 23:38:31.0
php popen实现多任务
<?php$update_num = 1000;$limit = 100;$p_num = 0;$line_cmd = 'ps -ef | grep doit.php | grep -v grep | wc -l';$exec_cmd = '/usr/local/php/bin/php doit.php %s & > /dev/null 2>&1';$t1 = microtime(1);for($i = 0 ; $i < $update_num ; $i++){        if($p_num <=0){                $fp1 = popen($line_cmd,'r');                //current shell process numbers                $line = fread($fp1,512);                pclose($fp1);                //processes can be pushed                $p_num = $limit - $line;                if($p_num <= 0 ){                        usleep(100);                }        }        $p_num = $p_num -1;        $cmd = sprintf($exec_cmd,$i);        $fp = popen($cmd,'r');        pclose($fp);}$t2 = microtime(1);echo round($t2 - $t1,2);?>


<?phpsleep(2);$fp = fopen('doit.txt','a');fwrite($fp,$argv[1]."\n");fclose($fp);exit(0);?>