swoole process进程 多分发
<?php /** * Created by PhpStorm. * User: whitneywang * Date: 2018/6/4 * Time: 14:14 */
//第二个参数为true时,不输出TODO里的输出内容,显示会放到管道中 $process = new swoole_process(function (swoole_process $pro) { //todo //开启HTTPserver 类似在linux里运行一个PHP文件 //exec第二个参数要为数组 //Swoole\Process::exec() expects parameter 2 to be array $pro->exec('/home/work/bin/php',[ __DIR__.'/../server/http.php']); }, false); $pid = $process->start(); print_r($pid); //回收子进程 swoole_process::wait();
第二个参数为true只输出进程PID:
第二个参数为false
输出子进程
ps aux | grep process/process.php 可以看主进程 15594 就是上面15595的父进程
pstree -p 15594 通过子进程ID,可看到树结构
ps aft | grep http
场景:
curl
<?php class Curl { const URLS = [ 'http://baidu.com', 'http://qq.com', 'http://sina.com.cn' ]; function __construct() { echo 'process start time ' . time("Ymd H:i:s").PHP_EOL; } /** * 闭包里不好直接用变量,要用use * @return bool */ public function execute() { $workers = []; foreach (self::URLS as $key => $val) { $process = new swoole_process(function (swoole_process $pro) use ($key, $val) { //curl $content = $this-> curlData($val); echo $content . PHP_EOL; $pro->write($content. PHP_EOL); //$pro->write也可以直接输出管道里的内容 }, true); //true的情况下,输出信息会在管道里 $pid = $process->start(); $workers[$pid] = $process; } // 获取管道里的内容 foreach ($workers as $pros) { print_r($pros->read()); } echo 'process end time ' . time("Ymd H:i:s"); } /** * 模拟CURL请求 * @param $url * @return string */ function curlData($url) { //正常这里写CURL 或者file_get_content sleep sleep(1); return $url . ' succ'.PHP_EOL; } } $ws = new Curl(); $result = $ws->execute(1, 'test'); print_r($result . PHP_EOL); echo 'start:' . PHP_EOL;
swoole process进程 多分发相关推荐
- php swoole process,Swoole_process实现进程池的方法
Swoole的进程之间有两种通信方式,一种是消息队列(queue),另一种是管道(pipe),对swoole_process 的研究在swoole中显得尤为重要. IO多路复用 swoole 中的io ...
- PHP如何解决swoole守护进程Redis假死 ,mysql断线重连问题?
PHP如何解决swoole守护进程Redis假死 ,mysql断线重连问题? 最近公司有个项目,要举办一个线上活动,我这边负责提供接口记录用户访问记录,与操作记录,由于活动参与人数可能比较多,为了不影 ...
- 获取文件的后缀名 和 Process进程
1.获取文件的后缀名: string hou = Path.GetExtension("wang.txt");//hou=".txt";引用using Syst ...
- 为何System Idle Process 进程占用了大量有CPU资源
有稍微有点计算机基础的朋友问我,我的电脑速度变得很慢,有个System Idle Process 经常会占据我大量的CPU资源,是不是有病毒在作祟啊? 其实如果说电脑速度运行过一段时间变慢,是有可能是 ...
- php swoole process,PHP swoole的process模块创建和使用子进程操作示例
本文实例讲述了PHP swoole的process模块创建和使用子进程操作.分享给大家供大家参考,具体如下: swoole中为我们提供了一个进程管理模块 Process,替换PHP的 pcntl 扩展 ...
- Swoole Process
swoole_process 什么是swoole_process呢? swoole_process是基于C语言封装的进程管理模块,方便PHP多进程编程. swoole_process内置管道.消息队列 ...
- oracle server process,KI视角下的ORACLE SERVER PROCESS进程的活动
1.Server Process oracle的服务进程也称为shadow进程,主要是用于响应客户端请求执行相关的SQL语句,该进程运行的效率会对oracle的客户端的操作人员的体验产生很大的影响,o ...
- Electron中通过process进程对象的api获取CPU、系统位数、环境变量等相关信息
场景 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/a ...
- PHP安装TP6的composer install报Undefined index: process 进程依赖于proc_open 这个函数不可用
报错:安装tp6时候的报错 方法一 翻译:进程依赖于proc_open 这个函数,在我安装的PHP中这个函数不可用. 禁用函数去掉这个即可,在php.ini文件里面 使用/proc_open 找到 ...
最新文章
- 微信小程序 自定义单选复选按钮组的实现(用于实现购物车产品列表功能)
- CentOS7配置iptables防火墙
- python对逻辑回归进行显著性_python sklearn库实现简单逻辑回归的实例代码
- python sort 多级排序_sort、sorted排序技巧(多级排序)
- BZOJ1607 [Usaco2008 Dec]Patting Heads 轻拍牛头 筛法
- C语言异常处理之 setjmp()和longjmp()
- 刷屏了!这篇Python学习贴,90%的程序员都用的上!
- 贵州全国计算机二级报名官网入口,2019年3月贵州全国计算机二级考试报名入口已开通...
- java简历项目经验大全,不吃透都对不起自己
- zz 教你如何用proxyhunter找大学代理
- 四4层电梯三菱PLC程序带io表接线图
- php readystate,ajax+php打造进度条 readyState各状态的简单示例
- 前置:API:DSP:核心交换机:边界网关协议:边界:(防御)防火墙:负载均衡:摆渡机:名词解释
- 基于图搜索的规划算法之Voronoi图法
- 从豆瓣看《长安十二时辰》如何成为爆款IP?
- ubuntu下没有中文输入法的解决办法!
- Hackergame 2020
- python公司分析_Python分析6000家破产IT公司
- nginx 学习 --->>> nginx 实现动静分离
- 安装haxm时遇到的三种报错及解决措施