当前位置:首页 > PHP > 正文内容

swoole中的worker_num和task_worker_num

高老师8年前 (2019-05-05)PHP3733

(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排除测试

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/89.html

分享给朋友:

“swoole中的worker_num和task_worker_num” 的相关文章

PHP获取原始数据

PHP获取原始数据

在项目中需要对图片进行裁剪,前端裁剪完成发送base64给后端,但是很意外的PHP获取到的数据和前端有点差距,之前我都是先加密,后端解密,但是这次依然不行。于是使用filter_input方法轻松解决。$base64 =  filter_input(INPUT_POST...

 php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is  post '); } elseif ($_SERVER['...

php迭代器学习

php迭代器学习

php官方已经提供了Iterator(迭代器)接口,通过网上资料的学习,目前看适合超大集合或者数组提取使用。学习一个函数的实现对比内存占用差距.使用迭代器和普通循环实现range()函数。(1).普通循环实现range()函数。function newrange($low, $h...

PHP最快方式模拟curl,PHP最快爬虫模拟方法

PHP最快方式模拟curl,PHP最快爬虫模拟方法

有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...

在MyISAM引擎中使用事务会怎样

在MyISAM引擎中使用事务会怎样

众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try {     //开启事务     Db::startTrans();    &...

php pecl设置代理,php pear设置代理

php pecl设置代理,php pear设置代理

pear config-set http_proxy 47.94.200.124:3128 pecl config-set http_proxy 60.216.101.46:32868家里的长城宽带什么都上不去,安装php扩展真麻烦,使用网...