时间:2023-05-26 19:39:01 | 来源:网站运营
时间:2023-05-26 19:39:01 来源:网站运营
PHP是怎么操作多进程的:在以往的开发项目中,要操作进程就会使用PHP自带的pcntl拓展。但是pcntl存在着许多的不足:
PHP
的pcntl
;安装PHP_swoole拓展;
$data
的长度在Linux
系统下最大不超过8K
,MacOS/FreeBSD
下最大不超过2K
/** 创建子进程,将数据写入管道,然后启动子进程 */$process = new /swoole_process([$this, 'sonProcessWork']);$process->write(json_encode($data_pop));$pid = $process->start();
swoole_event_add(): 将一个socket加入到底层的reactor
事件监听中;在子进程中处理一些耗时的计算或者操作;/** 获取管道的业务数据,进行相关的操作 */public function sonProcessWork(/swoole_process $worker){ $GLOBALS['worker'] = $worker; swoole_event_add($worker->pipe, function($pipe) { /******start*你的业务逻辑 *******/ ..... /******end*你的业务逻辑 *******/ $worker->exit(0); })}
wait(false)/** 根据信号处理紫禁城 */private function sig_handler($signo) { Process::signal(SIGCHLD, function($sig) { //必须为false,非阻塞模式 while($ret = Process::wait(false)) { echo "PID={$ret['pid']}/n"; }});}
以上就是php_swoole 对进程的基本操作,在实际开发过程中,业务会比较复杂;我们应当配合队列来进行使用。关键词:进程,操作