swoole管道通信

Posted zh718594493

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swoole管道通信相关的知识,希望对你有一定的参考价值。

如果是非常简单的多进程执行任务,那么进程间就不需要通讯了,实际情况下,很多业务是需要通讯的,比如,发邮件,如果自进程发送失败了,那么是要通知主进程的等等。

swoole_process进程间支持2种通信方式:

  1、管道pipe

  2、消息队列

管道通讯

半双工: 数据单向流动, 一端只读, 一端只写。
同步 vs 异步: 默认为同步阻塞模式, 可以使用 swoole_event_add() 添加管道到 swoole 的 event loop 中, 实现异步IO

技术图片

 

 管道通信是swoole_process默认的一种通信方式。当然我们也可以在实例化的时候通过参数来设定:

$process = new SwooleProcess(callback_function, false, true);

如果我们打印$process会发现,每次创建一个进程后,就会随之创建一个管道,主进程想和哪一个进程通信,就向那个进程的管道写入/读取数据。

管道有2个方法,分别来写入数据,和读取数据。

  1. $process->write(‘数据‘);#写入数据
  2. $process->read()#读取数据

以上是关于swoole管道通信的主要内容,如果未能解决你的问题,请参考以下文章

swoole父进程和子进程之间通信的例子

swoole父进程和子进程之间通信的例子

swoole(PHP异步网络通信引擎)的结构和运行流程

使用swoole多进程案例[管道通讯]

使用swoole多进程案例[管道通讯]

学习Swoole需要掌握哪些基础知识