<?php $workers = []; //进程仓库 $workers_num = 2;//进程最大进程数 for ($i = 0; $i<$workers_num;$i++){ $process = new swoole_process('doProcess',false,false);//创建子进程完成 $process->useQueue();//开启队列,类似与全局函数 $pid = $process->start(); $workers[$pid] = $process; } //进程执行函数 function doProcess(swoole_process $process){ $recv = $process->pop();//8192长度 echo "从主进程获取到的数据:$recv \n"; sleep(5); $process->exit(0);//退出子进程 } //主进程 向子进程添加数据 foreach($workers as $pid => $process){ $process->push("你好 子进程 $pid \n"); } //等待子进程结束 回收资源 for($i = 0;$i<$workers_num;$i++){ $ret = swoole_process::wait();//等待执行完成 $pid = $ret['pid']; unset($workers['$pid']); echo "子进程退出:$pid \n"; }
php-swoole进程队列通信:进程之间的通信
最新推荐文章于 2023-08-09 16:03:42 发布