swoole如何热更新
发布时间 - 2019-12-07 00:00:00 点击率:次随着swoole的版本迭代更新,已经足够稳定了,在阿里,腾讯,yy等各大公司都有着使用,也有很多游戏圈里的朋友也在使用,这些朋友经常会提到一个问题,每次代码更新还需要停止服务,然后重新启动,来达到更新代码,然而这种做法,是比较粗暴的。
其实swoole里提供reload的特性,完全支持代码的热更新。
在介绍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给清空)。
# swoole
# php
# 接口
# 都要
# 第二步
# 第三步
# 翻译成
# 第四步
# 都是
# 几个
# 有一
# 也有
# 你要
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
三星网站视频制作教程下载,三星w23网页如何全屏?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何获取上海专业网站定制建站电话?
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
网站制作软件有哪些,制图软件有哪些?
php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】
图册素材网站设计制作软件,图册的导出方式有几种?
北京企业网站设计制作公司,北京铁路集团官方网站?
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
zabbix利用python脚本发送报警邮件的方法
如何在万网ECS上快速搭建专属网站?
Android利用动画实现背景逐渐变暗
焦点电影公司作品,电影焦点结局是什么?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
LinuxCD持续部署教程_自动发布与回滚机制
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何在万网开始建站?分步指南解析
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
教你用AI润色文章,让你的文字表达更专业
Python文件流缓冲机制_IO性能解析【教程】
如何自定义建站之星模板颜色并下载新样式?
利用 Google AI 进行 YouTube 视频 SEO 描述优化
黑客如何通过漏洞一步步攻陷网站服务器?
历史网站制作软件,华为如何找回被删除的网站?
米侠浏览器网页背景异常怎么办 米侠显示修复
如何在宝塔面板创建新站点?
Laravel Docker环境搭建教程_Laravel Sail使用指南
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何升级到最新版本?(升级指南和步骤)
如何基于云服务器快速搭建个人网站?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
JS实现鼠标移上去显示图片或微信二维码
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
重庆市网站制作公司,重庆招聘网站哪个好?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
如何在VPS电脑上快速搭建网站?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
桂林网站制作公司有哪些,桂林马拉松怎么报名?

