[Swoole入门到进阶] [公开课] Swoole服务器-Server的四层生命周期

通过llama.cpp与羊驼聊天的网页界面- 详解 Serge 的启动使用

 

 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国内流行程度

Link:https://www.cnblogs.com/farwish/p/11482639.html

posted on 2019-09-07 20:01  ercom  阅读(595)  评论(0编辑  收藏  举报