版权声明:潘广宇博客, https://blog.csdn.net/panguangyuu/article/details/88393617
<?php
// 12个url待进行访问
$url = array(
"http://www.baidu.com",
"http://www.sohu.com",
"http://www.qq.com",
"http://www.iqiyi,com",
"http://www.hao123.com",
"http://www.taobao.com",
"http://www.weibo.com",
"http://www.sina.com.cn",
"http://www.toutiao.com",
"http://www.meituan.com",
"http://www.youku.com",
"http://www.tudou.com"
);
// 开启3个子进程
for ($i=0; $i<3; $i++) {
$process = new swoole_process("main", true);
$process->start();
echo $process->read();
}
function main(swoole_process $worker) {
$startTime = microtime(true);
/* 获取进程的id */
$processid = $worker->pid % 3;
/* 依次分配url给进程处理 */
global $url;
$pointer = $processid;
while ($pointer <= count($url) - 1) {
curl($url[$pointer]);
$pointer = $pointer + 3;
}
$endTime = microtime(true);
$wasteTime = $endTime - $startTime;
echo "进程 " . $processid . " 耗时 " . $wasteTime . " 秒" . PHP_EOL;
}
function curl($url) {
$ch = curl_init();
//设置你需要抓取的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
/* 输出结果 */
进程 0 耗时 0.2741539478302 秒
进程 2 耗时 0.28703999519348 秒
进程 1 耗时 0.89358496665955 秒