workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
有webman监听redis过期事件的demo么
需要监听redis过期后,处理其他
业
务
。没有找相关信息
问答
Workerman3.4.2在3.4.0版本上改动了HTTP协议,导致POST请求收不到内容
之前
业
务
是建立在3.4.0版本上,客户端采用POST发送JSON数据,接收正常,现更换为3.4.2版本后,
业
务
代码不变,但打印data数据段,发现content-type为**application/json$GLOBALS = $GLOBALS = $http_body; } } ``` 尝试在default段加入:parse_str($http_body, $_POST);
业
务
正常
问答
实例B向实例A中的客户端推送数据该怎么做效率最高?
目前有这样一个需求 使用的是GatewayWorker 以前定时器是运行在实例A中的,但是随着推送
业
务
量的增加会导致进程阻塞,影响客户端的上行效率,所以现在打算专门再跑一个实例B专门处理下行
业
务
的推送.实例A 所有的客户端连接和上行数据处理 实例B 仅使用定时器处理io阻塞
业
务
, 查询到数据库中有推送需求时向实例A中的指定客户端推送数据. 想问一下要实现以上功能效率最高的方式是什么?
问答
关于内存泄漏,看了关于生命周期的文档,那么我这个问题岂不是很大?
https://www.workerman.net/doc/webman/others/lifecycle.html ## 我这样的写法,是不是有很大的问题,进程重启会不会影响
业
务
提示 webman的所以即使
业
务
代码出现内存泄漏,也不会对
业
务
造成影响。 提示 随着请求增加,webman会载入一些类文件到内存,内存会有一定增长,这种内存增长是正常现象,只要不是内存无限增长就不是内存泄漏。 !
问答
请教一个关于webman/push问题,望大神不吝赐教
目前
业
务
需要,客户端在websocket连接的时候需要带上一段自定义加密串,
服
务
器端会解密,得到id,最后判断相同id,只能同时在线3个,超过3个的,会将之前的连接干掉一个,客户端不再连接,最多连接就3
问答
【已解决】redis6版本设置了只读账号,webman无法远程登录
#### 问题描述 因为
业
务
需要在默认账号写入数据后,前端需要用只读账号消费数据,在配置里设置了只读账号后
服
务
器上能登录这个账号,但在本地测试远程登录时显示 ```php RedisException
问答
发生status 139 和 11 的退出
如果
业
务
中有数据库操作,很可能出现busy的情况,是不是只能在开一个
服
务
异步去处理,才能解决这类busy的问题。还是有更好的处理方法,谢谢~~~~
问答
gatewayworker并发配置
cpu是双核,现在可支持并发量上去了,但是刚刚看文档才发现上面说的是gateway调成cpu核数相等,business调成cpu核数的三倍,瞬间懵了,请问大神这是什么情况,还有就是这个cpu核数是看我
服
务
器的我这边是阻塞式IO
业
务
,含有数据库连接和客户端IO
问答
gateway进程cpu跑满,报错
#### 问题描述 两台部署的gatewayworker
服
务
,硬件配置为16核32G,最近半个月经常出现一台机器上的几个gateway进程cpu跑满100%,导致
业
务
无法正常转发。
问答
http-client 定时任
务
同时多个请求都跑到一个进程里, 导致全部超时【已解决】
#### 问题描述 http-client 定时任
务
同时多个请求都跑到一个进程里, 导致全部超时 这里详细描述问题  #### 原因 线上需要访问速通门
服
务
器,
服
务
器在本地环境 NAT映射出的的端口运营商给屏蔽了 导致无法访问
文档
status命令查看运行状态
* 64000:导致这个退出码的原因是
业
务
代码抛出了异常,但
业
务
没有捕获这个异常,导致进程退出。参见[Worker类构造函数](worker/construct.md) worker_name:该进程运行的
服
务
服
务
名,见[Worker类name属性](worker/name.md) connections注意:如果进程进入短暂的繁忙是正常情况,如果进程一直是繁忙状态,则有可能发生了
业
务
阻塞或者
业
务
死循环的情况,需要根据[调试busy进程](busy-process.md)一节排查。## 注意 status 时可能会发现有些进程显示busy,原因是由于进程忙于处理
业
务
(例如
业
务
逻辑长时间阻塞在curl或者数据库请求上,或者运行大的循环),无法将状态上报,导致显示busy。出现这种问题需要排查
业
务
代码,看哪里导
业
务
致长时间阻塞,并且评估阻塞耗时是否在预期内,如果不符合预期需要根据[调试busy进程](busy-process.md)一节排查
业
务
代码。
问答
webman-常驻内存疑惑
只有控制器 和 启动脚本中 载入的文件(比如,process,composer包),才是常驻内存的 我们自己写的
业
务
代码,比如,在某个方法里,直接 new 的,这种都不是常驻内存的吧 因为遵循PHP垃圾回收机制如果仅仅只比较
业
务
代码,是不是跟fpm中,性能差不多的呢?
问答
客户端跟
服
务
端建立了tcp连接, 然后 客户端 断网, Gateway::isOnline 判断客户端是否在线, 得出的结果还是在线。 这个有时效性问题吗? 还是跟什么有关系呢
客户端跟
服
务
端建立了tcp连接, 然后 客户端 断网, Gateway::isOnline 判断客户端是否在线, 得出的结果还是在线。 这个有时效性问题吗? 还是跟什么有关系呢
分享
Nacos在我司的应用及SOA初尝
# 前言 我目前所在的部门主要是负责公司的数据相关的内容,可以理解为数据统计,做的工作其实也比较复杂,除了做一些数据统计分析
业
务
之外,需要做一些基础
服
务
的开发;我部门因为内部开发语言并不统一,在这种情况下A项目是一个任
务
的调度分配
服
务
,可以理解为一个大型的脚本/定时执行器,有点类似与现在比较流行的serverless函数
服
务
,向A项目中添加一个任
务
函数或者执行脚本,他就会在合适的时候被触发;由于硬件
服
务
器并不止有一台/发现
服
务
(Nacos/consul都是优秀的
服
务
注册/发现
服
务
,选用Nacos是一些额外因素,他们各自有优缺点)。# PHP PHP在SOA中扮演了Web
业
务
服
务
的一个角色,主要是进行一些
业
务
接口的输出,但是我们的
服
务
由于需要高承载量,原本计划是使用自研的Reactor模型的NIO框架,但是考虑到减少心智负担,所以选用了文档及社群更完善,因为在一些
业
务
点我们不能有过多时长的错误及
业
务
不通畅,但如果仅仅是将{timer interval}的值缩小至ms,那么又会存在对Nacos
服
务
的过多请求;另外由于我们的
业
务
已经写了有一段时间了,累积了大量的
文档
send buffer to worker fail
Gateway和BusinessWorker启动后会根据`registerAddress`设置的地址(Register
服
务
地址)注册自己, 当start\_gateway.php和start\_businessworker.phpregisterAddress`地址格式为`Register的IP:端口号`, 其中端口号为start\_register.php中的监听端口(假设是1238), 单机部署时,Register
服
务
为本机分布式(集群)部署时,IP为实际Register
服
务
部署的IP(分布式部署时只需要部署一台Register
服
务
即可,假设是192.168.1.100), 则start\_gateway.php和start### 原因二
业
务
设置了business\_worker->onWorkerStart 或者 Events::onWorkerStart 回调,并且回调里有死循环或者长时间阻塞的代码,致使框架无法执行### 原因四
服
务
器启动了多个GatewayWorker,并且多个GatewayWorker使用了相同的端口导致冲突。利用命令 `ps auxf` 查看进程启动情况。
分享
【轻框架Pandaman】优雅的添加定时器
```php #[AsTimer(3, '测试')] public function timersss(): void { //
业
务
逻辑 支持依赖注入 } ```
问答
gateway开启4个进程 event里的静态变量是不是不共享的 如图
[](//www.workerman.net/upload/20210423/236082ae3f3e70.jpeg) 多进程中
业
务
处理文件的静态变量共享吗
分享
分享一次关于RabbitMQ重复消费的故障
然后无意跳去看一下所有
服
务
总览页面,发现另一个
服
务
有几个error,于是进入详情,发现一直提示“验证码637592发送失败,data not accepted”。###
业
务
逻辑 以上报错来自一个邮件推送
服
务
,利用webman+rabbitmq(采用的workerman/rabbitmq)做的异步消费。更诡异的是,仅仅只有进程onWorkerStop的
业
务
日志和onWorkerStart启动的
业
务
日志,并没有出现workerman调度进程输出的日志(我们都知道在workerman下,假设进程出现异常或者自己但是我们
业
务
逻辑除了onWorkerStop外,自己并不会主动的disconnect,那它是在哪里被调度的呢?所以再次做了一次测试,本地将
业
务
逻辑直接sleep 120s,heartbeat设置为30s,测试果真和线上故障时所有细节一致。
分享
基于开源workerman开发的在线客
服
系统源码-99客
服
## workerman客
服
系统源码介绍 99客
服
是一款由**Workerman官方出品**,基于开源高性能PHP框架`Workerman/Webman`开发的在线客
服
系统源码。可用作网页客
服
,网站客
服
系统源码,[AI智能客
服
系统](https://kefu.workerman.net)。客
服
源码开源未加密,可二次开发,无IP域名等部署限制。超高性能,超级稳定。* 支持目前流行的AI大模型,实现了AI智能客
服
功能,可以将对话托管给AI机器人客
服
,设置知识库,让AI自动根据知识库回复用户的提问,极大的减轻了客
服
负担 * 支持20个国家的语言,支持大模型翻译 *支持智能分流 * 支持发送文字、语音、表情、图片、文件 * 支持微信公众号/微信小程序 * 支持客
服
分组 * 支持客
服
转接 * 支持设置客
服
常见问题 * 消息提醒 * 已读回执 * 消息撤回 * 黑名单在线客
服
系统源码部署教程](/a/119) ## 其它项目 除了99客
服
系统,workerman官方还开发了[聊天系统源码](/q/13880) ,有需要的可以访问了解。
问答
我在wokerman里新增了异步任
务
处理,能否提交合并
[截图](//www.workerman.net/upload/20200321/215e75b8dc5505.png)执行效果 增加了以下内容,参照的swoole /** 异步任
务
task方法时触发 * @var callable */ public $onTask = null; /** 异步任
务
进程数 大于0时创建异步进程 * @varint */ public $task_worker_num = 0; /** 异步进程端口 不指定时以当主
服
务
端口+100 * @var int */public $task_port = 0; /** 异步任
务
进程 * @var Worker */ public $taskWorker = null;* @param mixed $data * @return bool|int 失败false 成功 返回任
务
进程id */ public function task
« 上一页
1
...
52
53
54
55
56
57
58
59
...
221
下一页 »
« 上一页
55
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝