Swoole 进程Process 持续更新
需要注意Process进程在系统是非常昂贵的资源,创建进程消耗很大。另外创建的进程过多会导致进程切换开销大幅上升
Swoole\Process特性:
- 基于Unix Socket和sysvmsg消息队列的进程间通信,只需调用write/read或者push/pop即可
- 支持重定向标准输入和输出,在子进程内echo不会打印屏幕,而是写入管道,读键盘输入可以重定向为管道读取数据
- 配合Event模块,创建的PHP子进程可以异步的事件驱动模式
- 提供了exec接口,创建的进程可以执行其他程序,与原PHP父进程之间可以方便的通信
简单实现
process.php
<?php
/**
* Created by PhpStorm.
* User: dom
* Date: 19-2-22
* Time: 下午5:34
*/
$redirectStdinStdout = false; // true:进程输出不会显示在终端,会直接进入管道 false:则会进入显示终端
$process = new swoole_process(function (swoole_process $pro){
// 逻辑代码
echo '123123';
$pro->exec('/usr/local/bin/php', ['/var/www/project/yii-best-practice/cli/yii',