<?php
/**
* author: 应杲臻<yinggaozhen@myhexin.com>
* create: 2016-01-20
* note: 测试专用
*/
class Ygz_Cron_Ao
{
CONST REQTYPE = 1;
public function __construct()
{
}
private static $_crawlerWeb = array('Baidu', 'Google', 'Soso', 'Bing');
private static $_timer = null;
public static function main()
{
$ao = new self();
self::$_timer = time();
if (self::REQTYPE == 0) {
foreach (self::$_crawlerWeb as $gtWeb) {
switch ($pid = pcntl_fork()) {
case -1 :
die('failed');
break;
case 0 :
$func = '_funcFor' . $gtWeb;
$ao->$func();
exit;
break;
default :
//pcntl_waitpid($pid, $status);
break;
}
}
} else {
foreach (self::$_crawlerWeb as $gtWeb) {
$func = '_funcFor' . $gtWeb;
$ao->$func();
}
}
}
private function _funcForBaidu()
{
sleep(2);
echo "FuncBaidu Complete ! This Func Spend " . (time() - self::$_timer) . " s\n";
}
private function _funcForGoogle()
{
sleep(4);
echo "FuncGoogle Complete ! This Func Spend " . (time() - self::$_timer) . " s\n";
}
private function _funcForSoso()
{
sleep(6);
echo "FuncSoso Complete ! This Func Spend " . (time() - self::$_timer) . " s\n";
}
private function _funcForBing()
{
sleep(8);
echo "FuncBing Complete ! This Func Spend " . (time() - self::$_timer) . " s\n";
}
}
最终结果
1、普通请求
FuncBaidu Complete ! This Func Spend 2 s
FuncGoogle Complete ! This Func Spend 6 s
FuncSoso Complete ! This Func Spend 12 s
FuncBing Complete ! This Func Spend 20 s
2、多进程请求
FuncBaidu Complete ! This Func Spend 2 s
FuncGoogle Complete ! This Func Spend 4 s
FuncSoso Complete ! This Func Spend 6 s
FuncBing Complete ! This Func Spend 8 s