您当前的位置: 首页 >  php

壹小俊

暂无认证

  • 2浏览

    0关注

    885博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

PHP操作多进程

壹小俊 发布时间:2020-03-30 10:33:34 ,浏览量:2

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

  • pcntl没有提供进程间通信的功能
  • pcntl不支持重定向标准输入和输出
  • pcntl只提供了fork这样原始的接口,容易使用错误

这边我们使用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事件监听中;在子进程中处理一些耗时的计算或者操作;

/** 获取管道的业务数据,进行相关的操作 *
关注
打赏
1664335782
查看更多评论
立即登录/注册

微信扫码登录

0.4481s