php/swoole多进程使用场景

swoole多进程使用场景,我这以访问多个url地扯作为测试,帮大家快速理解swoole多程进的使用,看下面php代码:

<?php
//swoole多进程使用场景
echo "进程开始时间:".date("Y-m-d H:i:s").PHP_EOL;;
$urls = [
    "https://www.baidu.com/",
    "https://www.hao123.com/",
    "https://www.qq.com/",
    "https://www.163.com/",
    "https://www.jd.com/",
    "https://ai.taobao.com/",
    "https://www.sina.com.cn/",
    "https://bj.58.com/",
    "https://www.hupu.com/",
    "https://www.mgtv.com/",
];
$works = [];
for($i = 0; $i < count($urls); $i++){
    //创建一个子进程
    $process = new  Swoole\Process(function (Swoole\Process $pro)
    use ($i,$urls){
        $content = curlDate($urls[$i]);
//        把数据写入管道
//        echo $content.PHP_EOL;//第三个参数为true,输出会到父进程的管道里,到管道里取值
          $pro->write($content.PHP_EOL);
    },true);
    $pid = $process->start();
    $works[$pid] = $process;
//    echo $pid.PHP_EOL;
}
//输出管道里的值
foreach ($works as $process){
//    读取管道里的值
  echo  $process->read();
}

echo "进程结束时间:".date("Y-m-d H:i:s").PHP_EOL;;
//模拟请求url的内容
function curlDate($url){
    sleep(1);
    return $url." success".PHP_EOL;
}

 在linux终端运行代码郊果如下:

我这在代码里使用sleep等待1s,程序1s就执行完了 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值