Swoole的进程
Swoole中有几种进程,分别是:Manager、Reactor线程、Worker、TaskWoker
根据官方文档的介绍,分别介绍
Manager进程
swoole中worker/task进程都是由Manager进程Fork并管理的。
子进程结束运行时,manager进程负责回收此子进程,避免成为僵尸进程。并创建新的子进程
服务器关闭时,manager进程将发送信号给所有子进程,通知子进程关闭服务
服务器reload时,manager进程会逐个关闭/重启子进程
Reactor线程
负责维护客户端机器的TCP连接、处理网络IO、收发数据
完全是异步非阻塞的模式
全部为C代码,除Start/Shudown事件回调外,不执行任何PHP代码
将TCP客户端发来的数据缓冲、拼接、拆分成完整的一个请求数据包
Reactor以多线程的方式运行
Worker进程
接受由Reactor线程投递的请求数据包,并执行PHP回调函数处理数据
生成响应数据并发给Reactor线程,由Reactor线程发送给TCP客户端
可以是异步非阻塞模式,也可以是同步阻塞模式
Worker以多进程的方式运行
当一个Worker进程被成功创建后,会调用onWorkerStart回调,随后进入事件循环等待数据。当通过回调函数接收到数据后,开始处理数据。如果处理数据过程中出现严重错误导致进程退出,或者Worker进程处理的总请求数达到指定上限,则Worker进程调用onWorkerStop回调并结束进程。
Task进程<