workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
【已解决】workerman5.0的fiber协程,即http协程客户端在自定义进程中使用会提高性能吗
#### 问题描述 现有的主项目是laravel开发的项目,采用分布式部署,会根据
不
同的
事
件,将
不
同的数据
回
调给
不
同的第三方url,并发很大,大概一天要
回
调几百万次,采用laravel queue消费这些
回
调目前遇到的问题: 1.对服
务
器内存消耗较大,需要开了200多个进程去消费这些
回
调 2.有的客户提供http 服
务
器响应慢,就会阻塞消费的进程 3.各台服
务
器负载均衡,所以由哪台服
务
器发送的
不
可知,所以客户那边需要绑定我们所有负载服
务
器的ip作为白名单 4.重发机制依赖guzzle/http的retry,导致重试期间会严重阻塞队列 5.没有很好的记录、查询这些
回
调的机制 #### 方案 1.采用webman来统一处理这些
回
调,做一个转发url,流程是: laravel主项目->webman项目->第三方url 2.webman工作进程接收数据,并通过异步TCP客户端的方式发送给 自定义10个进程消费(主要是
不
阻塞工作进程) 3.自定义进程中入库、发送、更新库中的对应数据(如发送时间、第三方web服
务
器的响应数据等,作为后期检索发送的依据)。
问答
怎么把
不
同的任
务
分配到
不
同的进程里面去
怎么把
不
同的任
务
分配到
不
同的进程里面去
问答
怎么把
不
同的任
务
分配到
不
同的进程里面去
**怎么把
不
同的任
务
分配到
不
同的进程里面去
问答
webman 怎么来区分开发环境和
生
产环境?
如题: webman 怎么来区分开发环境和
生
产环境?
问答
手机浏览器标签页中websocket无法触发close
事
件,仍旧在后台连接着。请问是否有好的处理办法?
手机浏览器测试发现在当前标签页打开新聊天室或者刷新等操作,本来是应该退出之前的聊天室,进入新的聊天室,可是现在是发现无法触发close
事
件,导致当前标签页
不
仅连接着现在新的聊天室,还连接着老的聊天室,导致老的聊天室一直有该用户(但实际上用户手机端收
不
到这个老的本该关闭的聊天室的消息了,只是在当前标签页,后台还连接着这个老的聊天室。)
不
过关闭手机浏览器该标签页或者退出手机浏览器,可以正常触发close
事
件,并且服
务
器端会移除该用户 请问是否有人遇到过这个问题,还请指点一下,谢谢了~ 另外,手机标签页用 target=_blank 无法打开新标签页
问答
异常退出exit with status 9
maxSendBufferSize 是发送缓冲区的大小,当服
务
端发送速度大于客户端接收速度时,数据会挤压在发送缓冲区,如果发送缓冲区满,则触发onBufferFull
事
件
回
调,在这个
事
件
回
调中做处理(如果onMesage
不
能及时处理数据,数据会首先数据会积压在客户端socket发送缓冲区(操作系统提供,大小约几十K)和workerman服
务
器的socket接受缓冲区(操作系统提供,大小约几十K),如果客户端socket发送缓冲区满,则客户端调用socket写操作将阻塞(block模式)或者立刻返
回
失败(非阻塞模式),当服
务
端onMessage处理完毕再次读取本地socket接收缓冲区数据后,客户端socket发送缓冲区的数据会继续发送过来到服
务
端socket接收缓冲区,然后依次循环。所以当服
务
端onMessage
不
能及时处理数据,
不
会导致maxSendBufferSize满,但是可能会导致数据在客户端和服
务
端的socket缓冲区积压。 引起的? 要怎么解决?
问答
AsyncTcpConnection客户端在windows系统下服
务
器链接断开没有触发
回
调函数
#### 问题描述 服
务
:GatewayWorker 客户端:AsyncTcpConnection 客户端 向 服
务
发送数据,服
务
处理数据报错关闭链接,客户端没有触发onClose
回
调,连定时器也没有执行remoteAddress * @var */ protected $remoteAddress; /** * 创捷websocket客户端连接通讯服
务
器}]\r\n"; }; $this->conn->connect(); } } ``` #### 重现问题的步骤 第一步:启动GatewayWorker服
务
;第二步:启动客户端,客户端使用AsyncTcpConnection链接服
务
,成功后向服
务
发送数据; 第三步:服
务
处理接受数据,数据处理异常导致链接关闭 #### 操作系统环境及workerman
问答
使用laravel db,listen无
效
参考了此帖子的
回
答,https://www.workerman.net/q/7727 并未解决问题,确定是有调用对应的start方法,但是就是监听
不
到sql语句。
问答
workerman/crontab 是否支持win
根据安装教程,安装了 workerman/crontab,在win上,没有
生
效
安装教程:https://www.workerman.net/doc/webman/components/crontab.html
问答
phpsocket.io怎么向指定用户发送消息 怎么使用to方法有
效
phpsocket.io怎么向指定用户发送消息 怎么使用to方法有
效
问答
think\exception\ErrorException: call_user_func_array() expects parameter 1 to be a valid callback,
[截图](//www.workerman.net/upload/20201020/205f8e92de2b4d.png) 这是咋
回
事
谁知道 啊
问答
关于-webman,定时任
务
启动自定义进程,在`onWorkerStart`中,开启一个定时任
务
```php new Crontab('50 7 * * *', function(){ throw new ApiException如果像这样抛出了异常,但没有catch,这个时候会发
生
什么情况? 2. 当前这个进程会自动重启吗?
问答
自定义进程内存占用过大
所以有以下4个问题想请教 1.自定义进程能否使用ini_set('memory_limit',256m)的这种代码,因为我想为单独这个进程扩大内存的使用,如果在php.ini修改应该是对所有的都
生
效
。2.自定义进程能否手动释放内存且立即
生
效
(或者说立即
生
效
是指
不
会触发内存溢出的错误) 3.像这种用户数据的统计分析用什么样的方案比较合适?
问答
手册代码块显示改进建议(方便手机阅读)
webman手册上的示例代码在手机上看自动换行了,是否能改进一下,像看云的代码块那样,加个横向
滚
动条,代码
不
换行,方便手机查看阅读,非常喜欢workerman,经常在手机上学习手册,望walkor大佬支持
问答
实际业
务
场景,发现连接池这个东西还是需要的
webman本身很省连接,一个进程一个连接,也看过老大对连接池解释的帖子,但是最近遇到一个场景,感觉业
务
量如果再加大,没有连接池是
不
行了 业
务
场景如下: 原本开了4倍进程,32*4,Mysql500个开连接,webman+fpm程序总共用
不
到200个连接,活跃连接1-3 最近新加了一个功能,我司用到一个第三方付费接口,该接口在我司客户端产品调用,但是该接口只有一个固定秘钥字符串,没有
生
成签名之类的。该接口是实时代理采集淘宝、拼多多等电商平台数据,所以返
回
较慢,很多需要800-1200ms才能返
回
接口,这导致我原来的4倍进程
不
够用,大量后续请求阻塞。于是我把进程一直上调到CPU核*12倍=382个进程,才实现了
不
堵塞,虽然进程多了,但是实际CPU和内存负载还是很多,估计开30倍都没问题。解决 长远思考,如果我的业
务
量放大到10台服
务
器,业
务
相近,就需要10台*32核心*12 = 3820个进程,Mysql就要4000+个连接数才能够用,这种场景下没有连接池是
不
行了
问答
基于websocket的协议,服
务
端未完全启动时, client连接失败后调用reconnect无
效
!
服
务
端未完全启动时, client连接失败后调用reconnect后,虽然connect成功的,但是发送数据服
务
端并
不
能接收到,这是为什么?
问答
workerman作为ws客户端与GatewayWorker通信时每次发送数据client_id都
不
一样
因为业
务
需求要把原本的多端口业
务
统一成一个端口分发 在考虑原来的GatewayWorker模式
不
变的情况下就想到在前端再加一套GatewayWorker通过业
务
识别码做业
务
转发 但是通过AsyncTcpConnection类作为ws客户端与GatewayWorker通信时每次发送数据client_id都
不
一样 这样无法识别是谁产
生
的请求。
问答
made:model命令现在可以根据数据库中的表格
生
成model吗
webman/console的 made:model 命令 可以根据数据库中的表格并读取表格所有参数
生
成model吗 具体该怎么操作?php webman make:model users
生
成的model文件并没有
生
成所有参数,也没有把属性的备注加进去 users表有两个字段id,name
生
成文件如下 ``` <?
问答
每次修改,都需要php start.php start 修改的内容才有
效
吗?
#### 问题描述 每次修改,都需要php start.php start 修改的内容才有
效
吗? 有没有方便的方法啊?
问答
写了一个http服
务
器 workermanhttpd,
不
知道有什么问题
其实已经写了很久,但没在
生
产环境用过。也没宣传过。对 workerman 了解
不
深,
不
知道会有什么问题。 workerman 也是和 php-fpm 一样多子进程的吧。 如果是用协程模式,wokermanhttpd 的协程安全会有问题。
« 上一页
1
...
36
37
38
39
40
41
42
43
...
459
下一页 »
« 上一页
39
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝