首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
在onWorkerStart中调用$server->stop()无效
### 问题描述 版本(4.5.1)在onWorkerStart中调用$server->stop()无效. 但是在版本(2.0.9)是有效的。 ### Swoole版本,PHP版本,以及操作系统版本信息 ### 相关代码 ```php $objServer = new swoole_server('127.0.0.1', 9619); //设置运行参数 $objServer->set([ 'daemonize' => 0, //以守护进程执行 'enable_coroutine' => false, 'worker_num' => 1 ]); //设置事件回调 $objServer->on('Receive', function(Swoole\Server $server, int $fd, int $reactorId, string $data){ var_dump(1); }); $objServer->on('WorkerStart', function($server,$workid){ #2.0.9版本可以直接在WorkerStart里stop,触发WorkerStop事件 #4.5.1版本不可以直接在WorkerStart里stop,不能触发WorkerStop事件,是之后修改过吗 var_dump(2); $server->stop(); }); $objServer->on('WorkerStop',function($server,$workid){ var_dump(3); }); $objServer->start(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 希望版本(4.5.1)也可以在onWorkStart中stop并触发WorkStop事件
发布于6年前 · 1 次浏览 · 来自
提问
小胖子123
### 问题描述 版本(4.5.1)在onWorkerStart中调用$server->stop()无效. 但是在版本(2.0.9)是有效的。 ### Swoole版本,PHP版本,以及操作系统版本信息 ### 相关代码 ```php $objServer = new swoole_server('127.0.0.1', 9619); //设置运行参数 $objServer->set([ 'daemonize' => 0, //以守护进程执行 'enable_coroutine' => false, 'worker_num' => 1 ]); //设置事件回调 $objServer->on('Receive', function(Swoole\Server $server, int $fd, int $reactorId, string $data){ var_dump(1); }); $objServer->on('WorkerStart', function($server,$workid){ #2.0.9版本可以直接在WorkerStart里stop,触发WorkerStop事件 #4.5.1版本不可以直接在WorkerStart里stop,不能触发WorkerStop事件,是之后修改过吗 var_dump(2); $server->stop(); }); $objServer->on('WorkerStop',function($server,$workid){ var_dump(3); }); $objServer->start(); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 希望版本(4.5.1)也可以在onWorkStart中stop并触发WorkStop事件
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-06-17
小胖子123
https://github.com/swoole/swoole-src/pull/3382/files/fd41c3be5ad7b3022ad4a976f3ef154d537066e1
赞
1
回复
2020-06-13
郭新华
确认了是bug,下个小版本修复,多谢反馈
赞
0
回复