qgymje 发表于 2013-2-7 01:37:35

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."\n");fclose($fp);exit(0);?>
页: [1]
查看完整版本: php popen实现多任务