[Swoole入门到进阶] [公开课] Swoole服务器-Server的四层生命周期
PHP 完整生命周期
执行PHP文件
PHP扩展模块初始化(MINIT)
PHP扩展请求初始化(RINIT)
执行 PHP 逻辑
PHP扩展请求结束(RSHUTDOWN)
PHP脚本清理
PHP扩展模块结束(MSHUTDOWN)
终止PHP
PHP 请求生命周期
如果是 cli 执行 PHP 脚本,那么会完整执行整个过程,因为存在进程创建。
如果是 php-fpm 请求响应阶段,那么会执行中间四步过程,等到 fpm 进程退出才执行扩展模块清理工作。
Swoole Server 四层生命周期
程序全局期:Server->start 之前创建的对象资源,持续驻留内存,worker共享。
全局期代码在 Server 结束时才会释放,reload 无效。
进程全局期:Server 启动后创建多个进程,它们内存空间独立,非共享内存。
worker 进程启动后(onWorkerStart)引入的代码在进程存活期有效,reload 会重新加载。
会话期:在 onConnect 或 第一次onReceive 时创建,onClose 时销毁。
客户端连接后创建的对象会常驻内存,直到此客户端离开才销毁。
请求期:在 onReceive/onRequest 收到请求开始,直到发送 Response 返回。
请求期创建的对象会在请求完成后销毁,和 fpm 程序中的对象一样。
Course http://www.yzmedu.com/learn/8889
Code https://github.com/farwish/swoole-wholly
Refer:Swoole国内流行程度