workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
定时任
务
的进程问题
centos workerman 3.0 版 照着手册的定时任
务
例子做了,没有任何输出。```php use \Workerman\Worker; $task = new Worker(); // 开启多少个进程运行定时任
务
,注意多进程并发问题 $task->count = 1; $task```php \Workerman\Lib\Timer::add(1,function(){echo "task run\n";}); ``` 所以我想,是
不
是进程的问题 ```php $task =
问答
异常捕获和记录
try 了
回
调方法,但是发现
回
调里报了致命的错误但是没有捕获,我在stdoutFile 设置的文件里也没有看到错误。比如缺少扩展之类的。进程直接退出了。没有到catch 里那这类的错误要怎么捕获。$class, $method), $param_array);//
回
调里有报错但是没有catch住也就没有上报到日志系统里 } catch (Exception $e) { // 发送数据给客户端,发
生
异常,调用失败 $code = $e->getCode() ?
文档
中间件
## 请求拦截 有时候我们
不
想某个请求到达控制器层,例如我们在middleware2发现当前用户并没有登录,则我们可以直接拦截请求并返
回
一个登录响应。,响应从middleware2穿越
回
中间件1然后返
回
给客户端。这里省略其它中间件 app\middleware\AuthCheckTest::class, ] ]; ``` 有了身份验证中间件,我们就可以在控制器层专心的写业
务
代码,
不
用就用户是否登录而担心请求,我们
不
想OPTIONS请求进入到控制器,所以我们为OPTIONS请求直接返
回
了一个空的响应(`response('')`)实现请求拦截。uid')); // 111 } return $handler($request); } } ``` > **注意** ## 中间件获取异常 业
务
处理过程中可能会产
生
异常
问答
关于原有Thinkphp H+后台的项目用Workman的Webserver重构 SESSION 问题
关于重构项目后台 用户登陆 是
不
是没法使用原来那种php-fpm的session 自动使用匹配 用webserver 重构是
不
是只能走接口鉴权 然后
生
成token 用token识别用户的是否登陆最近这两天看到了官网的一个大神用workman 写的Thinkworker框架 所以想用它把原来的TP H+模板的后台重构下 目前页面基本已经和数据基本已经处理的差
不
多 希望到时候写完 能提供大家 希望社区越来越好 坐等大神
回
复我的问题 万分感谢!
问答
webman Redis消息队列组件 redis-queue
workerman 的异步redis client封装还没
事
实现 !
不
能用好像
问答
redis-queue 队列插件能
不
能主动抛出异常?
https://www.workerman.net/plugin/12 下面是webman 官方插件的一些说明: ```css 消费失败重试 如果消费失败(发
生
了异常),则消息会放入延迟队列,等待下次重试消费过程中没有抛出异常视为消费成功,否则消费失败,进入重试队列 ``` -------------- # ## 问题 因为redis没有ack 模式, 1.能否故意把某个队列抛出为异常(目的是为了丢进重试队列) 2.又或者能
不
能主动把某条队列丢入重试队列# ## 原因 因为我的队列消费时的工作场景为:curl 携带XX参数,访问一个异步通知地址,当整个地址返
回
的内容为:success 代表消费成功,否则丢入重试队列(xx秒后重试 - 一共重试5次)
问答
【已解决】http协议POST请求时获取
不
到url的query_string
#### workerman http协议POST请求时获取
不
到url的query_string 在使用workerman的时候发送POST请求,请求的URL带有query_string参数,但是在请求类里面获取
不
到这个\Workerman\Protocols\Http\Request $request): void { $connection->send($request->uri()); } ``` 发现返
回
的uri结果是/index.php,而
不
是期望的/index.php?param=value #### 重现问题的步骤 POST请求一个带有query_string参数的URL 通过请求类的uri()方法返
回
的数据没有带query_string参数 #### 操作系统环境及
问答
同一个用户登录
不
同设备,如何区分是移动端还是手机端
描述: 因为ws支持同一个用户可登录多个相同或者
不
同的设备,会
生
成多个client_id绑定的同一个uid, 绑定的时候能否有更好的方法去标识此client_id属于哪个设备来源(是使用SESSION通过Client_ID查询对应的session里存的某个来源值,这个涉及到轮询for) 方便ws服
务
器端通过用户ID查询当前用户下的client_id能清晰的知道每一个client_id所对应的设备来源值在同一个用户登录多个设备的情况下快速找到登录APP设备的client_id,或者更快的判断当前用户是或否有在APP设备登录且当前在线(
不
在线)??
问答
是阻塞引起的吗?
\n"); // 读取推送结果 $resp = fread($client, 8192); fwrite 在服
务
端没接收到内容, fread也没接收到
回
应,这种情况会
不
会是阻塞造成的?
问答
webman在处理长时间运行内容时候可以先返
回
数据在处理内容
#### 问题描述 这里写问题描述 webman在处理长时间运行内容时候可以先返
回
数据在处理内容,例如在导入大的数据表格或者数据等情况
问答
服
务
器的什么配置会影响FileMonitor?
相同代码一个服
务
器可以实时更新,另外一个就
不
行了 用的是start 没有守护运行
问答
Workerman作为客户端和服
务
器关闭连接后 怎么做到自动和服
务
器重连?
我想在客户端断开连接时重新和服
务
器建立连接。我在onClose里面这样写
不
行,要怎么写才对? [attach]363[/attach]
问答
workerman queue内存使用率持续增高,直到服
务
器宕机(解决了)
#### 问题描述 workerman queue 内存使用率持续增高,直到服
务
器宕机。 刚开始的时候,单个进程2.43M,然后就一直增高59.04M,直到服
务
器宕机。我的服
务
端没有产
生
任何的消息列队。就空跑。 reload 后:  过一小段时间后: != new Worker(); $consumer->name = 'ImJobConsumer'; // 消费的队列的id $consumer->queueId = $QUEUE_ID; // 慢任
务
,message\n"; } } } }); }; ``` #### 重现问题的步骤 以守护进程的方式启动,然后
不
断的查看我是在消费列队信息的时候,调用Phalcon的Task. ``` $app = Bootstrap::handle()->app(); ``` 由于
不
断给变量赋值,并没有释放内存。
问答
推送有时成功有时失败
uid=uid3 有时候成功,有时候失败,怎么
回
事
啊?
问答
推送有时成功有时失败
20200618/185eeb272a4322.png) 前端通过websocket连接到workerman,后端通过这个push.php文件传入前端的参数uid进行推送,有时候成功,有时候失败,怎么
回
事
呢
问答
关于 协程 概念的一些疑惑
#### 为此你搜索到了哪些方案及
不
适用的原因 关于 进程 的概念,无论是fpm,还是守护进程 workerman,都是一个进程处理一个请求,当 进程数量 处理
不
过来很多的请求的时候,会阻塞。我有以下猜想: 举个例子,业
务
逻辑是这样的: 一个请求过来后,首先,需要 4 秒钟调用第三方接口A,需要 4 秒钟调用第三方接口B,拿到A和B接口返
回
的数据后,需要2秒钟进行A和B接口返
回
数据的组装是
不
是这 5个进程可以同时
生
成5个协程来处理呢?还是说 5个进程,同一时间内,只能有一个协程在处理?
问答
workerman时常假死,链接
不
上去,非得重启
为什么按照官方文档用它与thinkphp3一起使用,workerman部署在
不
同服
务
器上用一段时间有3个月以上,时常性质的假死,在重启后2个月内视乎没有什么
不
稳定的就是
不
知道为什么它突然连
不
上去了,怎么也连
不
上去了只能重启服
务
才能再次连上去,搞
不
懂为什么会这样,现在公司业
务
方面很多用了这个推送,要是时常会死掉该考虑换掉它了,这么
不
稳定的。。时常的假死,
不
确定原因假死,既没有日志也没有报错信息,就死掉了。连
不
上去,而那服
务
器居然还是开着的。
问答
游戏开发中,分布式部署,开启多个业
务
进程,怎么确保一个房间的玩家在同一个服
务
器的同个业
务
进程呢?
#### 问题描述 一个游戏服
务
,开了多个 businessworker 后,
不
能保证同一个房间的人都在一个 businessworker 的进程内存中。以及分布式部署后,没法保证同一个房间的人进入同一个服
务
器的同一个 businessworker。同一个房间的游戏玩家如果没有进入同一个 BusinuessWorker,操作内存数据的时候,会读取
不
到其他玩家的相关游戏状态信心。 这里大家说怎么处理的呢?
问答
服
务
端推送消息至客户端字节大小有限制
$errmsg; $data = array('uid'=>'uid1', 'data'=>'这里2000个字节的时候会返
回
fail 字节少的时候返
回
ok'); // 发送数据,注意5678$client; echo fread($client, 8192); } 发送比较多字节的时候会返
回
fail 字节少的时候返
回
ok ERRER:0=$
文档
globalEvent
globalEvent ## 说明: ```php static Event Worker::$globalEvent ``` 此属性为全局静态属性,为全局的eventloop实例,可以向其注册文件描述符的读写
事
件或者信号
事
件命令行运行 ``` kill -SIGALRM 进程pid ``` 服
务
端会打印出 ``` Get signal SIGALRM ```
« 上一页
1
...
94
95
96
97
98
99
100
101
...
483
下一页 »
« 上一页
97
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝