首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole_process在fpm的Web请求中只执行部分方法
环境说明: PHP:5.5.7 ```php class Process { function run() { $funcMap = [[$this, 'methodOne'], [$this, 'methodTwo'], [$this, 'methodThree']]; $worker_num = 3;//创建的进程数 $workers = []; for ($i = 0; $i < $worker_num; $i++) { $process = new swoole_process($funcMap[$i]); $pid = $process->start(); $workers[$i] = $pid; } //var_dump($workers);exit; while (1) { $ret = swoole_process::wait(); if ($ret) {// $ret 是个数组 code是进程退出状态码, $pid = $ret['pid']; echo PHP_EOL . "Worker Exit, PID=" . $pid . PHP_EOL; } else { break; } } } public function methodOne(swoole_process $worker) { var_dump(1); } public function methodTwo(swoole_process $worker) { var_dump(2); } public function methodThree(swoole_process $worker) { var_dump(3); } } (new Process())->run(); ``` 执行结果: int(1) 经测试发现:三个方法没有全部执行。请教各位大牛,这是为什么啊?
发布于9年前 · 0 次浏览 · 来自
提问
雨
雨夜
环境说明: PHP:5.5.7 ```php class Process { function run() { $funcMap = [[$this, 'methodOne'], [$this, 'methodTwo'], [$this, 'methodThree']]; $worker_num = 3;//创建的进程数 $workers = []; for ($i = 0; $i < $worker_num; $i++) { $process = new swoole_process($funcMap[$i]); $pid = $process->start(); $workers[$i] = $pid; } //var_dump($workers);exit; while (1) { $ret = swoole_process::wait(); if ($ret) {// $ret 是个数组 code是进程退出状态码, $pid = $ret['pid']; echo PHP_EOL . "Worker Exit, PID=" . $pid . PHP_EOL; } else { break; } } } public function methodOne(swoole_process $worker) { var_dump(1); } public function methodTwo(swoole_process $worker) { var_dump(2); } public function methodThree(swoole_process $worker) { var_dump(3); } } (new Process())->run(); ``` 执行结果: int(1) 经测试发现:三个方法没有全部执行。请教各位大牛,这是为什么啊?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-06
K
KINKI
[@rango ](/u/1)求解答
赞
0
回复
2017-05-06
H
Hami小熊
在php-fpm中创建子进程,echo内容会出现问题。建议仅用作跑后台任务。
赞
0
回复