swoole多线程采集入库示例

php备忘

<?php
$page = 120;
$worker_num = 10;
$redirect_stdout = false;
$workers = [];
for($i=1;$i<=$worker_num;$i++){
    
    
    $process = new swoole_process('callback_function_we_write',$redirect_stdout);
    $pid = $process->start();
    $workers[$pid] = $process;
    $workers[$pid]->write($i);
    
}





function callback_function_we_write(swoole_process $worker){
    
    $recv = $worker->read();
    $start = (($recv-1)*12)+1;
    $end = $recv *12;
    for($i=$start;$i<=$end;$i++){
    $mainpost_url = "http://www.wdzj.com/front_select-plat";
            $maindata["currPage"] = $i;
            $maindata["params"] = "";
            $maindata["sort"] ="0";
            $time = time();
            $maincoo = CurlPost($mainpost_url,$maindata);
            $mianlist = json_decode($maincoo,true);
            foreach($mianlist['list'] as $keyy=>$valuee){
                $url = 'http://www.wdzj.com/dangan/'.$valuee['platPin'];
                if($valuee['platStatus']==1){
                    mysql_connect("localhost","root","");
                    mysql_select_db("caiji");
                    $sql = "insert into `lzh_wdzj_dangan` set `name`='{$valuee['platName']}',`platId`='{$valuee['platId']}',`url`='{$url}',`platPin`='{$valuee['platPin']}',`update_time`='{$time}'";
                    
                    var_dump(mysql_query($sql));
                    echo "采集{$url}成功!";
                }
                
            }
    }

    $worker->exit(0);
    
}






function CurlPost($url,$data){
            $ch = curl_init ();
            curl_setopt ( $ch, CURLOPT_URL, $url );
            curl_setopt ( $ch, CURLOPT_POST, 1 );
            curl_setopt ( $ch, CURLOPT_HEADER, 0 );
            curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
            curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
            $return = curl_exec ( $ch );
            curl_close ( $ch );
            return $return;
        
    }



while(1){
    $ret = swoole_process::wait();
    if ($ret){// $ret 是个数组 code是进程退出状态码,
        $pid = $ret['pid'];
        //unset($workers[$pid]);
        echo PHP_EOL."Worker Exit, PID=" . $pid . PHP_EOL;
    }else{
        break;
    }
}



?>


2016-07-21 15:27:00

php
php

这是介绍的地方

本文相关标签

推荐应用

友情链接


皖ICP备14007051号-2 关于穆子龙