首页 > 系统服务 > 详细

swoole使用异步进程通信

时间:2018-05-06 22:02:40      阅读:267      评论:0      收藏:0      [点我收藏+]

$process = new swoole_process(function($pro){

  $pro->exec(‘//linux中的php命令所在绝对路径‘, [‘//执行文件绝对路径‘]);

}, false);

$process->start();//开启进程

swoole_process::wait();//通过  #pstree -p Pid 进行查看线程间的关系

 

#####################################分隔符#################################################

用多进程执行多请求

//模拟请求多网站的数据
echo ‘start time : ‘ . date(‘H:i:s‘) . PHP_EOL;
$workers = [];
$urls = [
‘https://baidu.com‘,
‘https://sina.com.cn‘,
‘https://bilibili.com‘,
‘https://pipigui.cc‘,
‘https://www.swoole.com‘,
‘https://wiki.swoole.com‘,
];
$url_counts = count($urls);
for($i = 0; $i < $url_counts; $i++ ){
//创建线程请求
//当创建线程的第二个参数为true时,数据存储在线程间的管道中,不打印出来,为非阻塞模式
//为false为阻塞,为同步执行
$process = new swoole_process(function($pro) use($i , $urls){
        $content = curlData($urls[$i]);
// echo $content . PHP_EOL;
$pro->write($content . PHP_EOL);
    },true);
$process->start();
$workers[] = $process;
}
//打印出存在管道的数据
foreach($workers as $process){
echo $process->read();
}
//模拟curl请求
function curlData($url){
sleep(1);
return $url . ‘: request success‘ ;
}
echo ‘end time : ‘ . date(‘H:i:s‘) . PHP_EOL;

swoole使用异步进程通信

原文:https://www.cnblogs.com/zonehoo/p/8999760.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!