作者:孩子气zyj2 | 来源:互联网 | 2023-08-09 00:53
php框架|Swooleswoolephp框架-Swoole随着swoole的版本迭代更新,已经足够稳定了,在阿里,腾讯,yy等各大公司都有着使用,也有很多游戏圈里的朋友也在使用,
php框架|Swoole
swoole
php框架-Swoole
随着swoole的版本迭代更新,已经足够稳定了,在阿里,腾讯,yy等各大公司都有着使用,也有很多游戏圈里的朋友也在使用,这些朋友经常会提到一个问题,
每次代码更新还需要停止服务,然后重新启动,来达到更新代码,然而这种做法,是比较粗暴的。苹果cms电影源码微信,vscode智能打印,ubuntu lsblk,tomcat 启动几个,sqlite第二版,原生态js的图片延迟加载特效插件,前端开发框架 百度云,网络爬虫的基本步骤介绍,php 压缩html,孝感谷歌seo公司,jquery easyui 网站,网页栏目框素材,阿里大于短信模板设置lzw
云购源码去除短信验证,vscode前端常用插件翻译,ubuntu极点五笔,tomcat 日志管理,sqlite 降序,网页设计的备案号,dedecms数据库密码,服务器香港,wordpress 论坛插件,wau前端框架,搜图爬虫,php获取表单数据,海尔seo,流媒体springboot,灵动标签 当前栏目下子栏目,网站首页模版,易语言代理ip访问网页,bootstrap网页模板下载,pigcms后台密码,个人页面jsp代码,宾馆客房管理系统源代码,php考试程序代码lzw
其实swoole里提供reload的特性,完全支持代码的热更新。兼职 php源码,ubuntu下c 11,tomcat免安装版 启动,python 爬虫汽车之家,php函数中设定字体大小,SEO实践体会lzw
在介绍swoole的reload之前,先简要的讲讲web方式是如何改了文件就立即生效的:几个概念: (推荐学习: swoole视频教学)
1) sapi:可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互
2) php的生命周期中关键四个调用:MINT -> RINT -> RSHUTDOWN -> MSHUTDOWN
3) fpm : fastcgi进程管理器
那么fpm方式的流程就是: fpm通过sapi接口与php进程交互,在fpm启动的时候,
第一步: 会调用各扩展的MINT方法,进行一些数据初始化(长驻内存),
第二步: 每个请求过来,先会执行RINT对单个请求行一个初始化,
第三步: 执行php脚本,
第四步: 执行RSHUTDOWN方法,
第五步: 如果你要停止fpm了,才会执行MSHUTDOWN。
fpm对每个请求的处理都是一直在在重复执行 2~4步 。
在第三步中, php的脚本是动态执行的,由于每次都要执行一次php脚本,而每次php脚本都要有一个把php文件翻译成opcode的流程(比较耗时), 于是就产生的opcache工具。
opcache: 直接把php翻译后的opcode代码树保存到共享内存中,以便直接使用,从而减少每次都把php翻译成opcode的开销。
opcache的问题:按照他的描述,修改了php文件,并不能立即被更新,
opcache的解决方案:有一个配置来设置隔多长时间检测文件是否更新了,从而有机会在第二步重新来reload相关的文件.
当然,你也可以直接reload fpm,从而达到php热更新的效果(opcache扩展可以在第四步把相关的opcode cache给清空)。