如果是非常简单的多进程执行任务,那么进程间就不需要通讯了,实际情况下,很多业务是需要通讯的,比如,发邮件,如果自进程发送失败了,那么是要通知主进程的等等。
swoole_process
进程间支持2种通信方式:
1、管道pipe
2、消息队列
管道通讯
半双工: 数据单向流动, 一端只读, 一端只写。
同步 vs 异步: 默认为同步阻塞模式, 可以使用 swoole_event_add()
添加管道到 swoole 的 event loop
中, 实现异步IO
管道通信是swoole_process
默认的一种通信方式。当然我们也可以在实例化的时候通过参数来设定:
$process = new Swoole\Process(‘callback_function‘, false, true);
如果我们打印$process
会发现,每次创建一个进程后,就会随之创建一个管道,主进程想和哪一个进程通信,就向那个进程的管道写入/读取数据。
管道有2个方法,分别来写入数据,和读取数据。
$process->write(‘数据‘);#写入数据
$process->read()#读取数据
原文地址:https://www.cnblogs.com/zh718594493/p/12251681.html
时间: 2024-10-01 20:13:43