15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > PHP是怎么操作多进程的

PHP是怎么操作多进程的

时间:2023-05-26 19:39:01 | 来源:网站运营

时间:2023-05-26 19:39:01 来源:网站运营

PHP是怎么操作多进程的:在以往的开发项目中,要操作进程就会使用PHP自带的pcntl拓展。但是pcntl存在着许多的不足:

这边我们使用swoole进程管理模块,用来替代PHPpcntl

场景:日常任务中,有时需要通过php脚本执行一些日志分析,队列处理等任务,当数据量比较大时,可以使用多进程来处理。

准备:安装PHP_swoole拓展;

write($data)
  向管道内写入数据。$data的长度在Linux系统下最大不超过8KMacOS/FreeBSD下最大不超过2K
start():
   执行fork调用,启动子进程。

/** 创建子进程,将数据写入管道,然后启动子进程 */$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 对进程的基本操作,在实际开发过程中,业务会比较复杂;我们应当配合队列来进行使用。

以上内容希望帮助到大家,更多PHP大厂PDF面试文档,PHP进阶架构视频资料,PHP精彩好文免费获取可以关注公众号:PHP开源社区,或者访问:

2021金三银四大厂面试真题集锦,必看!

四年精华PHP技术文章整理合集——PHP框架篇

四年精华PHP技术文合集——微服务架构篇

四年精华PHP技术文合集——分布式架构篇

四年精华PHP技术文合集——高并发场景篇

四年精华PHP技术文章整理合集——数据库篇

关键词:进程,操作

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭