首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole_process 子进程只运行一次就退出
使用swoole 1.8.7 中的样例,其中去掉了sleep ,但是程序只是子进程运行了一次,就不在运行,直接退出,求大神指导,问题是在哪里? {{{ <?php $workers = []; $worker_num = 2; for($i = 0; $i < $worker_num; $i++) { $process = new swoole_process('callback_function', false, false); $process->useQueue(); $pid = $process->start(); $workers[$pid] = $process; //echo "Master: new worker, PID=".$pid."\n"; } function callback_function(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master // while(true) // { $recv = $worker->pop(); echo "From Master: $recv\n"; // } // sleep(2); $worker->exit(0); } $i = 1; while(true) { /** * @var $process swoole_process */ $pid = array_rand($workers); $process = $workers[$pid]; $process->push("hello worker[$pid], i:$i\n"); if($i > 30) { break; } $i++; // sleep(1); } for($i = 0; $i < $worker_num; $i++) { $ret = swoole_process::wait(); $pid = $ret['pid']; unset($workers[$pid]); echo "Worker Exit, PID=".$pid.PHP_EOL; } }}}
发布于8年前 · 1 次浏览 · 来自
提问
这
这 ,些~年。
使用swoole 1.8.7 中的样例,其中去掉了sleep ,但是程序只是子进程运行了一次,就不在运行,直接退出,求大神指导,问题是在哪里? {{{ <?php $workers = []; $worker_num = 2; for($i = 0; $i < $worker_num; $i++) { $process = new swoole_process('callback_function', false, false); $process->useQueue(); $pid = $process->start(); $workers[$pid] = $process; //echo "Master: new worker, PID=".$pid."\n"; } function callback_function(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master // while(true) // { $recv = $worker->pop(); echo "From Master: $recv\n"; // } // sleep(2); $worker->exit(0); } $i = 1; while(true) { /** * @var $process swoole_process */ $pid = array_rand($workers); $process = $workers[$pid]; $process->push("hello worker[$pid], i:$i\n"); if($i > 30) { break; } $i++; // sleep(1); } for($i = 0; $i < $worker_num; $i++) { $ret = swoole_process::wait(); $pid = $ret['pid']; unset($workers[$pid]); echo "Worker Exit, PID=".$pid.PHP_EOL; } }}}
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-11-24
h
h2
已经解决了!{{{ function callback_function(swoole_process $worker) { //echo "Worker: start. PID=".$worker->pid."\n"; //recv data from master while(true) //不能注释掉 { $recv = $worker->pop(); echo "From Ma
赞
0
回复