(1)swoole启动的主进程是master进程负责全局管理,然后master进程会再fork一个manager进程。
(2)manager进程开始统一管理进程创建回收管理。
(3)manager进程根据设置的worker_num和task_worker_num来创建work进程和task进程
因此启动swoole我们能看到的进程数是:2+worker_num+task_worker_num,2中包含manager进程和master进程
worker_num是用来处理请求逻辑的进程数,task_num是异步任务投递进程,专门处理异步任务的执行
例如下面的代码:
<?php //构建Server对象 $server = new swoole_server("127.0.0.1", 9503); //设置worker进程4个 $server->set([ 'worker_num' => 2, 'task_worker_num' => 2, 'daemonize' => false, ]); //设置客户端连接回调 $server->on('connect', function ($server, $fd) { }); $server->on('receive', function ($server, $fd, $reactor_id, $data) { }); //设置客户端关闭回调 $server->on('close', function ($server, $fd) { }); //设置Task回调 $server->on('Task', function ($serv) { }); //启动服务器 $server->start();
查看进程:
gao 3429 0.0 0.2 238888 21460 tty1 Sl 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3430 0.0 0.0 92684 3204 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3433 0.0 0.0 88260 3364 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3434 0.0 0.0 88260 3384 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3435 0.0 0.0 88676 3524 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php gao 3436 0.0 0.0 88676 3552 tty1 S 11:26 0:00 php /mnt/d/wwwroot/todo/index.php
还可以通过swoole提供的$server->manager_pid和$server->master_pid排除测试
获取浏览器信息原理是基于浏览器的UA信息,早在AsP时代就这样判断,但是腾讯总是喜欢自己折腾,不知道以后会修改成什么! 提取自人人商城官方自带的判断方法:function is_weiXin() { if (empty($_SERV...
原理:使用curl_init()创建多个请求实例,再使用curl_multi_init()批量执行创建的多个请求实例。文件1:curl.php<?php $threads=500;//并发请求次数 $url='http://blog.cn/index.php?';...
先在centos安装openssl,然后开始://生成私钥openssl genrsa -out rsa_private_key.pem 1024//生成公钥openssl rsa -in rsa_private_key.pem&...
通过http推送消息给socket,socket服务再向客户端推送<?php /* * Socket推送 * 请用守护进程方式启动php msgservice.php & (socket只...
源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...