workerman
首页
问答
分享
手册
市场
商业
客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
AI助手
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
BusinessWorker内存持续增长,直到溢出exit
有几个疑问,不知道是不是造成内存持续增长的原因 **以下是大致的消息处理流程** 在 Events.php 里,每秒
发
送
数
据
的次
数
在3-8次左右,每次
发
送
的
数
据
量不大。设备有两种
数
据
处理方式 其中一类处理,频繁的
数
据
转
发
到组。 另一类处理,频繁的操作redis(出队入队)、更新session
数
据
。- 条件成立时 - 创建1-2个一次性的定时器,写入
数
据
库或者
发
送
邮件 - 写
数
据
到
数
据
库里 - 推
送
数
据
到组中的随机一个用户 **不知道是在哪里的代码有问题,memory_limit
问答
webman
发
布 1.4.6
**主要功能特性及变更如下,感谢各位热心开
发
者的提交** ### 默认关闭控
制
器复用 利用命令`composer create-project workerman/webman` 新建的webman项目`app.controller_reuse` 配置将默认为 `false`,开
发
者仍然可以手动将其设置为`true`开启控
制
器复用。** > **提示** > 很多开
发
者习惯了传统框架每个请求都重新初始化一个控
制
器的模式,所以官方默认将控
制
器复用关闭。> 关闭控
制
器复用后`helloworld`压测性能损失约10%左右,但真实业务下性能损失可以忽略不计。 ### 支持控
制
器参
数
注入 例子 ```php <?user->find(1); } } ``` 感谢 [377960738](https://github.com/377960738) 的贡献 ### helpers.php里路径相关函
数
支持子路径参
数
问答
循环获取
数
据
Alarm Clock 出现这个问题是什么原因?
我是通过GlobalData变量共享组件,不同
进
程之间获取
数
据
,但是我再循坏的时候要出现Alarm Clock 这个错误,求告知一下问题。
问答
GatewayWorker
Register被不明来源访问,不知道secretKey是否配置正确
$g->count = 4; $g->pingInterval = 10;// 心跳间隔 $g->pingData = '{"type":"ping"}';// 心跳
数
据
$g->lanIp = $registerIp;//本机ip,如果是分布式部署,需要设置成本机 IP //phpCli,允许多ip, 使用
GatewayWorker
\Lib\Gateway控
制
GatewayWorker
\Gateway PhpCli::$registerAddress = "$registerIp:$registerPort";
问答
webman gateway-work websocket
发
送
消息偶尔报错
; }catch (Throwable $e) { LogSave::logError($e,'wsSendReadyListRefresh-推
送
错误line":1366,"trace":"#0 /www/wwwroot/webman/vendor/workerman/gateway-worker/src/Lib/Gateway.php(1261):
GatewayWorker
getAllGatewayAddressesFromRegister() #1 /www/wwwroot/webman/vendor/workerman/gateway-worker/src/Lib/Gateway.php(1014):
GatewayWorker
\\Lib\\Gateway::sendToAllGateway() #2 /www/wwwroot/webman/app/functions.php(163):
GatewayWorker
\\Lib\
问答
同一个项目有两个gatewayworke
#### 同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?
分享
深入理解 PHP 高性能框架 Workerman 守护
进
程原理
守护
进
程顾名思义就是能够在后台一直运行的
进
程,不会霸占用户的会话终端,脱离了终端的控
制
。相信朋友们对这东西都不陌生了吧?如果看了这段代码且细心的朋友,会
发
现为什么 posix_setsid 这个函
数
不放在第一次 Fork 前调用,而在第
二
次 Fork 前调用呢,这样的话就不用 Fork 两次了?if (-1 === \posix_setsid()) { throw new Exception("Setsid fail"); } // 现在会
发
现
进
程组ID 和 会话ID 都变成了echoMsg("child1"); // 第
二
次 Fork
进
程 // 这里需要
二
次 Fork
进
程的原因是避免被终端控
制
进
程所关联,这个
进
程 61052 是在终端的模式下创建的 // 需要脱离这个
进
程Exception("Setsid fail"); } // 第
二
次创建
进
程,在基于 System V 的系统中,通过再次 Fork 父
进
程退出 // 保证形成的守护
进
程,不会成为会话首
进
程
问答
webman-admin统计行
数
过慢
#### 问题描述 ##### 一张表大约1200w
数
据
,使用mysql的SELECT COUNT(*) FROM
数
据
表;大约耗时40秒 ##### 查看webman-admin源码,
发
现Table控
制
器下的show方法执行到如下查询很缓慢。count(1):它会获取所有行的
数
据
,每行固定值1,也是行
数
加1。 count(id):id代表主键,它需要从所有行的
数
据
中解析出id字段,其中id肯定都不为NULL,行
数
加1。count(普通索引列):它需要从所有行的
数
据
中解析出普通索引列,然后判断是否为NULL,如果不是NULL,则行
数
+1。count(未加索引列):它会全表扫描获取所有
数
据
,解析中未加索引列,然后判断是否为NULL,如果不是NULL,则行
数
+1。
问答
webman消费
进
程
'handler' => Webman\RedisQueue\Process\Consumer::class, 'count' => 8, // 可以设置多
进
程'/queue/redis' ] ] ]; ``` 您好 请问这个
进
程是全局设定吗? 比如 我有一个 邮件
发
送
队列 还有其他队列 这个多
进
程 所有队列都8
进
程吗?能单独分开吗
问答
连接
数
上万时websocket就会出现php_network_getaddresses
目前的功能对bu
进
程
发
送
及时返回的消息比较多,分别开了gw和bu 32个
进
程,之前1核4g的服务器每当到了10000左右的连接
数
时,status查看 bu
进
程已经会出现n/a了,功能也用不了,之前以为是服务器的原因就加到了4核4g但是现在到了10000连接
数
时还是这样,查看日志报php_network_getaddresses这个错误,难道连接
数
过多了就会出现这个错误吗
文档
onConnect
TCP三次握手完毕时)触
发
的回调函
数
。只要有client_id,并且对应的客户端在线,就可以调用```Gateway::sendToClient($client_id, $data)```等方法向这个客户端
发
送
数
据
。($uid)```
发
送
数
据
,通过```Gateway::isUidOnline($uid)```用户是否在线了。onConnect事件仅仅代表客户端与gateway完成了TCP三次握手,这时客户端还没有
发
来任何
数
据
,此时除了通过```$_SERVER['REMOTE_ADDR']```获得对方ip,没有其他可以鉴别客户端的
数
据
或者信息要想知道对方是谁,需要客户端
发
送
鉴权
数
据
,例如某个token或者用户名密码之类,在[onMesssge](on-messsge.md)里做鉴权。
问答
workerman没有存入mysql
数
据
库接口?
workerman没有存入mysql
数
据
库接口?我写网络游戏要排行榜哈 这个肯定要
数
据
库哈 我想用redis 存
数
据
库 毕竟他实现起来比较容易 我就不知道会不会跟workerman冲突哈 我对workerman还不是很熟悉
问答
webman 支持 oracle
数
据
库吗?
问下webman支持Oracle
数
据
库吗?文档里面好像没有。
问答
连接成功了,但是
发
送
消息
发
不出去
ws.readyState判断是连接成功了,而且服务端也能查到连接,但是ws.send("ssssssssssssssssssssssssss");的时候,用ws.bufferedAmount判断一直
发
送
不出去
问答
线上出现报错 Memory allocation error:
#### 问题描述 线上打包
二
进
制
部署项目, 一个接口出现报错 ```sql PDOException:SOLSTATE[HY001]: Memory allocation error: 1038 0utpage_size); $total = $paginator->total(); $items = $paginator->items(); ``` #### 截图报错信息里报错文件相关代码
数
据
库设置
问答
webman使用laravel分页查询,只能查到第一页
数
据
,第
二
页之后的都是显示第一页的
数
据
根
据
指引 https://wenda.workerman.net/question/5872 使用laravel分页查询,最新版本,webman也是最新版本
问答
用gatewayClient,给小程序回复信息,延迟太长
项目模型是gatewaywoker用来建立设备连接和ws连接,
gatewayworker
通过curl将
数
据
发
送
给TP5处理,小程序与getawayworker建立连接后,TP5通过getawayClient
问答
webman 在 接收 POST JSON
数
据
的时候,出现解析不出来的情况
webman 环镜下 在多
进
程的情况下, A 用 Content-Type application/json 访问到
进
程1,是能正常解析的 B用户 Content-Type xxx访问
进
程2,后, A用户 提交的JSON
数
据
,访问到
进
程2,就解析不成功了。
问答
始终无法解决onMessage接受大量
数
据
写入redis或者GlobalData共享组件阻塞问题。
考虑了多
进
程的问题,但是维护很麻烦。我是在一个
进
程下有很多Connection链接
数
,导致接受的
数
据
像写入到其他地方,严重阻塞了当前主
进
程,延迟非常严重。
问答
请问gateway的内部通信
进
程只是把用户
数
据
转
发
到worker
进
程处理这个作用么?
比如gateway对外是8001端口提供服务,对内是4000端口
进
行内部通信,8001和4000是怎么交互的呢?
« 上一页
1
...
68
69
70
71
72
73
74
75
...
429
下一页 »
« 上一页
71
下一页 »
赞助商
+成为赞助商
×
请作者喝咖啡
×
🔝