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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!