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

swoole中的worker_num和task_worker_num

高老师7年前 (2019-05-05)PHP3625

(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生成缩略图

//参数1  文件名    参数2  缩放比例  function   _thumb($_filename,$_percent){    ob_clean();...

 php抽象类和接口作用

php抽象类和接口作用

【一】.抽象类假设如下场景:团队准备开发某网站,表建好了,页面设计好了.A组负责开发底层数据库操作类(DB),B组负责调用DB类.但是此时A组发生了争执,MySQL? Oracle? DB2? sqlite?到底使用什么数据库?B组.... 进入漫长的等待.解决方法:A组和B组 先定1个数据库类的模...

php 数组转换xml,php 数组转成xml,php数组转xml 函数

php 数组转换xml,php 数组转成xml,php数组转xml 函数

源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...

php多进程,php多进程处理任务,php多进程应用场景

php多进程,php多进程处理任务,php多进程应用场景

php多进程应用场景主要是非web端,fpm下是不支持多进程的,非类linux操作系统都不支持,请在cli模式使用.可以使用多进程做任务分发,批量计算,批量文件处理,批量爬虫,网络运维等等。下面看一份简单的入门demo//创建子进程 $pid=pcntl_fork(); //返回-1,创建失败,不...

php trait的使用

php trait的使用

PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts {     public f...

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

redis订阅和发布,redis消息订阅与发布, phpredis订阅和发布

Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者(publisher),订阅者(subscriber)和频道(channel)。 发布者和订阅者都是Redis客户端,Channel则为Redis服务器端,发布者将消息发送到某个的频道,订阅了这个...