Swoole从入门到入土(24)——多进程[进程管理器Process\Manager]
Swoole提供的进程管理器Process\Manage,基于 Process\Pool 实现。可以管理多个进程。相比与 Process\Pool,可以非常方便的创建多个执行不同任务的进程,并且可以控制每一个进程是否要处于协程环境。
注意:Swoole\Process\Manager只有在4.5.3及以上版本可用,如果碰到class not found错误的时候,检查一下自己当下的swoole版本。
示例:
use Swoole\Process\Manager;
use Swoole\Process\Pool; $pm = new Manager(); for ($i = 0; $i < 2; $i++) {
$pm->add(function (Pool $pool, int $workerId) {
});
} $pm->start();
成员函数
1) __construct():构造方法
Swoole\Process\Manager::__construct(int $ipcType = SWOOLE_IPC_NONE, int $msgQueueKey = 0);
$ipcType:进程间通信的模式,和 Process\Pool 的 $ipc_type 一致【默认为 0 表示不使用任何进程间通信特性】
$msgQueueKey:消息队列的 key,和 Process\Pool 的 $msgqueue_key 一致
2) setIPCType():设置工作进程之间的通信方式。
Swoole\Process\Manager->setIPCType(int $ipcType): self;
$ipcType:进程间通信的模式
3) getIPCType():获取工作进程之间的通信方式。
Swoole\Process\Manager->getIPCType(): int;
4) setMsgQueueKey():设置消息队列的 key。
Swoole\Process\Manager->setMsgQueueKey(int $msgQueueKey): self;
$msgQueueKey:消息队列的 key
5) getMsgQueueKey():获取消息队列的 key。
Swoole\Process\Manager->getMsgQueueKey(): int;
6) add():增加一个工作进程。
Swoole\Process\Manager->add(callable $func, bool $enableCoroutine = false): self;
$func:当前进程执行的回调函数
$enableCoroutine:是否为这个进程创建协程来执行回调函数
7) addBatch():批量增加工作进程。
Swoole\Process\Manager->addBatch(int $workerNum, callable $func, bool $enableCoroutine = false): self
$workerNum:批量增加进程的个数
$func:这些进程执行的回调函数
$endableCoroutine:是否为这些进程创建协程来执行回调函数
8) start():启动工作进程。
Swoole\Process\Manager->start(): void
--------------------------- 我是可爱的分割线 ----------------------------
最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同学点击链接,联系我吧。
Swoole从入门到入土(24)——多进程[进程管理器Process\Manager]的更多相关文章
- SUPERVISOR进程管理器配置指南
SUPERVISOR进程管理器配置指南1. supervisor简介1.1. 官网http://supervisord.org/ 1.2. 介绍Supervisor是一个进程控制系统. 它是一个C/S ...
- PHP FastCGI进程管理器PHP-FPM的架构
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态 ...
- nodeJS进程管理器pm2
pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...
- C# Process类_进程管理器Demo
Process用于管理计算机的进程,下面给出一个C#进程管理器的DEMO. namespace ProcessManager { public partial class Form1 : Form { ...
- PHPFastCGI进程管理器PHP-FPM详解
PHP-FPM是一个PHPFastCGI进程管理器,是只用于PHP的. PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PH ...
- FastCGI 进程管理器(FPM)
FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的. 它的功能包括: 支持平滑停止/启动的高级进程管理功能: 可以工作于不同的 uid/ ...
- PHPFastCGI进程管理器PHP
PHP-FPM是一个PHPFastCGI进程管理器,是只用于PHP的. PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中.必须将它patch到你的PH ...
- Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用
nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html nodejs 进程管理器 pm2 的使用 PM2 是一款非常优秀的 Node 进程 ...
- php-fpm一个PHPFastCGI进程管理器
PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)是一个PHPFastCGI管理器,对于PHP 5.3.3之前的php来说,是一个补丁包 [1] ,旨在将Fa ...
- Swoole 进程管理模块 Process 之单进程的使用
PHP 自带的 pcntl,存在很多不足,如: 没有提供进程间通信的功能: 不支持重定向标准输入和输出: 只提供了 fork 这样原始的接口,容易使用错误: Swoole\Process 提供了如下特 ...
随机推荐
- 【SHELL】[ ]、[[ ]]条件判断结构
输入参数包含 'arg-m' 时,会输出 Hit Arg-M 和 Hit Arg-N [[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo " ...
- [转帖]美国出口管制第六番 ECCN编码的藏宝图之旅
https://zhuanlan.zhihu.com/p/585040344 哈喽大家好,这里是大话合规 一旦明确物项受EAR管制(大前提) 下一步就是对物项进行编码 @#¥%&* 这篇文章蜗 ...
- [转帖]Oracle的审计
AUDIT_TRAIL 初始化参数AUDIT_TRAIL用于控制数据库审计,默认值为none. 参数类型: String 默认值: none 允许动态修改: 否 基本参数: 否 语法: AUDIT_T ...
- [转帖]使用 TiUP bench 组件压测 TiDB
https://docs.pingcap.com/zh/tidb/stable/tiup-bench 在测试数据库性能时,经常需要对数据库进行压测,为了满足这一需求,TiUP 集成了 bench 组件 ...
- Windows 磁盘部分性能数据获取
Windows 磁盘部分性能数据获取 摘要 每次晚上加班总有收获 这次发现了一个fio for windows版本的压测程序, 准备学习和使用一下. https://github.com/axboe/ ...
- SQLSERVER 标准版与企业版的版本标识区别
1. windows 标准版 sqlserver 标准版 2. Windows 数据中心版 sqlserver 企业版 3. Win10 之后 服务器版本缩减的很厉害 只有两个版本了 如图示 4. ...
- Oracle 查看所有表大小的SQL
Oracle 查看所有表大小的SQL 比较坑的是 lob 字段和 表的大小不在一个地方 为了出结果 我这边使用了 union all 慢的一逼... SELECT sum( tablesize ), ...
- elementui-自定表头和在input中遇见的问题
第一个问题:无法关闭 弹出框 <el-table :data="tableData" style="width: 100%"> <el-tab ...
- 【发现一个问题】macos m2 下无法使用 x86_64-linux-musl-gcc 链接含有 avx512 指令的 c 代码
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 一开始是使用 golang 中的 cgo 来编译: env ...
- ASP.NET MVC 通过ActionFilter获取请求的参数
using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using Syst ...