swoole中的worker_num和task_worker_num

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

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top