一、swoole多进程实现简介
0、通过swoole实现多进程,主要借助swoole_process类
swoole_process::__construct(callable $function, bool $redirect_stdin_stdout = false,
int $pipe_type = SOCK_DGRAM, bool $enable_coroutine = false);
1、简易实现demo[来自swoole官网]
$process = new swoole_process(function (swoole_process $worker) {
$worker->write('Hello');
}, false);
$process->start();
sleep(1);
echo $process->read();
2、具体实现说明
2.0、通过swoole_process类创建子进程实例,回调函数$function中的逻辑在子进程中执行。
2.1、子进程中处理后的数据,可以通过write方法写入管道,父进程中可以通过子进程实例从管道中读取数据。即,进程间通信。
2.2、如果需要打印子进程中数据,参数$redirect_stdin_stdout需要设置为false。
3、通过函数getmypid()获取父子进程ID示例,以下内容保存在文件ipc.php中。
echo 'ppid = ' . getmypid(), PHP_EOL;
$process = new swoole_process(function (swoole_process $worker) {