跑數據腳本

好比統計1千萬條數據,每次個進程統計10萬條php

<?php
for ($x=0,$y=100000;$y<=10000000;$x=$y,$y=$y+100000) {
    $pid=pcntl_fork();
    if($pid==-1){ //進程建立失敗
        die('fork child process failure!');
    }
    else if($pid){ //父進程處理邏輯
        pcntl_wait($status,WNOHANG);
    }
    else{ //子進程處理邏輯
        //$x,$y是傳遞給test.php腳本的參數
        pcntl_exec('/usr/local/bin/php',array('test.php',$x,$y));
    }
}

這段代碼的效果等同於用php命令行執行腳本test.php命令行

/usr/local/bin/php test.php 0 100000
    /usr/local/bin/php test.php 100000 200000
    /usr/local/bin/php test.php 200000 300000
    .
    .
    .
    /usr/local/bin/php test.php 9900000 10000000

一百個進程分別統計數據,最後合併這一百份數據code

相關文章
相關標籤/搜索