swoole-进程管理模块(二)
swoole队列
<?php
$workers =[];
$workNums = 2;
for ($i = 0; $i < $workNums; $i++) {
$process = new swoole_process('callback_function', false, false);
$process->useQueue();
$pid = $process->start();
$workers[$pid] = $process;
}
function callback_function(swoole_process $worker) {
$recv = $worker->pop();
echo "from master:$recv\n";
$worker->push(" \n hehe \n ");
sleep(2);
$worker->exit(0);
}
foreach ($workers as $pid => $process) {
$process->push("hello worker[$pid]\n");
$result = $process->pop();
echo "From worker: $result\n";//这里主进程,接受到的子进程的数据
}
for ($i = 0; $i < $workNums; $i++) {
$ret = swolle_process::wait();
$pid = $ret['pid'];
unset($workers[$pid]);
echo "worker exit, pid=" . $pid. PHP_EOL;
}
点进去查看,讲的挺明白的
segmentfault.com/a/119000000307338...
本作品采用《CC 协议》,转载必须注明作者和本文链接