PHP使用PCNTL系列的函数也能做到多进程处理一个事务。比如我需要从数据库中获取80w条的数据,再做一系列后续的处理,这个时候,用单进程?你可以等到明年今天了。。。所以应该使用pcntl函数了。
下面我们来看个实例
PHP;">
PHP
$arChildId = array();
for($i = 0; $i @H_301_6@ 0)
{
foreach($arChildId as $iKey=> $iPid)
{
$res = pcntl_waitpid($iPid,$status,WNOHANG);
if($res == -1 || $res > 0)
{
unset($arChildId[$iKey]);
echo '* Sub process: '. $iPid. ' exited with '. $status. PHP_EOL;
}
}
}
子进程执行的逻辑
function excuteProcess($iPid,$iSeconds)
{
file_put_contents('./log/'.$iPid.'.log',$iPid.PHP_EOL,FILE_APPEND);
sleep($iSeconds);
}
?>
运行结果