首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >swoole学习笔记

swoole学习笔记

作者头像
用户9283430
发布2021-12-13 15:59:08
发布2021-12-13 15:59:08
42800
代码可运行
举报
运行总次数:0
代码可运行

一、服务端 0. swoole常用的配置项:   daemonize = true 守护进程化   worker_num #swoole配置参数 设置启动的Worker进程数: 如 1 个请求耗时 100ms,要提供 1000QPS 的处理能力,那必须配置 100 个进程或更多。   reactor_num #线程数   task_worker_num #配置 Task 进程的数量 1. 几个重要的id:   $server->master_pid #主进程的 PID 跟pid_file文件存放的PID、netstat -tlunp | grep 6998 中的PID保持一致   $fd 客户端连接的唯一标识符   $server->manager_pid #当前服务器管理进程的 PID ??? 与master_pid的区别 管理进程与主进程的区别   $server->worker_id #获得当前Worker进程编号, 包括Task进程 Worker进程的范围是[0, worker_num - 1]; Task进程范围 [worker_num, worker_num + task_worker_num -1 ] 要深刻理解这两个范围   $server->worker_pid #得到Worker进程的操作系统进程ID 与posix_getpid() 的返回值相同 如worker_id = 0 则 worker_pid = 76845 2. 其他属性   $server->taskworker #当前进程是否是Task进程 true Task进程 / false Worker进程   $server->connections #连接跌代器 和 $server->getClientList()一致, connections不是数组或对象, 只能用foreach访问, 里面存的是$fd

3. 定时器

代码语言:javascript
代码运行次数:0
运行
复制
/*延时执行*/
$after = Timer::after(10000,function () use ($server,$fd){
  $server->send($fd, 'abc');
});
/*定时器*/
$i = 0;
$timer = Timer::tick(1000,function ($timerId) use (&$i,$server,$fd,$after){
  $i++;
  $server->send($fd, $i);
  if ($i==8) Timer::clear($after);
  if ($i==10) Timer::clear($timerId);
});

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档