swoole扩展提供了一个process模块,可以用来实现php的进程管理,只能用于cli环境
<?php
//使当前进程蜕变为守护进程
swoole_process::daemon();
//创建子进程
$process = new swoole_process('callback_function', true);
//执行系统调用
$pid = $process->start();
//子进程执行的逻辑
function callback_function(swoole_process $worker)
{
swoole_timer_tick(1000,function(){
echo time()."\n";
});
}
//父进程执行的逻辑
swoole_process::wait();
- 以上代码是一个简单的多进程脚本
- 父进程创建了一个子进程,如果要创建多个子进程,可以循环调用创建子进程的逻辑
- 如果要绑定指定进程到某一个cpu核上,请使用swoole_process::setaffinity(array $cpu_set),数组参数表示绑定哪些CPU核,如array(0,2,3)表示绑定CPU0/CPU2/CPU3
- 实际业务逻辑比上面的脚本肯定要复杂,所以请在上面脚本的基础上实现更复杂的逻辑