首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
'daemonize' => true下swoole变量失效造成死循环,求作者解答,是不是bug啊
关键代码 $this->serv = new swoole_server ( "0.0.0.0", 9501/*,SWOOLE_BASE*/ ,SWOOLE_PROCESS); $this->serv->set ( array ('work_num' => 20, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 2, 'debug_mode' => false, 'task_worker_num' => 20, /*'task_worker_max' => 100, 'log_file' => '/swoole.log'*/) ) public function onWorkerStart($serv, $worker_id) { for($i = 0; $i < 2; $i ++) { //此处在'daemonize' => true时死循环 } 我还试过$i用$this->i变量代替,也是存在相同的问题。在 'daemonize' =>false工作完全正常 求作者告诉我怎么解决谢谢
发布于10年前 · 2 次浏览 · 来自
提问
火
火端
关键代码 $this->serv = new swoole_server ( "0.0.0.0", 9501/*,SWOOLE_BASE*/ ,SWOOLE_PROCESS); $this->serv->set ( array ('work_num' => 20, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 2, 'debug_mode' => false, 'task_worker_num' => 20, /*'task_worker_max' => 100, 'log_file' => '/swoole.log'*/) ) public function onWorkerStart($serv, $worker_id) { for($i = 0; $i < 2; $i ++) { //此处在'daemonize' => true时死循环 } 我还试过$i用$this->i变量代替,也是存在相同的问题。在 'daemonize' =>false工作完全正常 求作者告诉我怎么解决谢谢
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2016-07-23
P
Pavle
补充一下 for循环里面套了一层foreach。这种情况下才会出现上面的bug
赞
0
回复
2016-07-23
游
游戏人生
再补充一下: foreach里面有 $fp = stream_socket_client ( 'ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT, $ctx ); 这样的调用才引起的,是不是与swoole框架的长连接有冲突,谢谢
赞
0
回复
2016-07-23
晨光
此问题真实存在希望得到解答。 4个条件同时存在,缺一不可。 'daemonize' => true public function onWorkerStart($serv, $worker_id) { for($i = 0; $i < 2; $i ++) { foreach(){ $fp = stream_socket_client ( 'ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60
赞
0
回复
2016-07-31
大
大猫熊
这里需要检查 - 有无PHP致命错误 - 是否有core dump (http://wiki.swoole.com/wiki/page/10.html) - ps aux查看进行是否死循环了,如果有死循环需要使用gdb工具进行调试
赞
0
回复