swoole 热重启
参考原文 https://blog.csdn.net/ldy3243942/article/details/40712475
代码用的原来只是自己加了一些操作流程
swoole_reload_server.php
<?php
/*** Example for swoole reload php code without shutdowning server.** @author Lancelot https://github.com/LinkedDestiny*/
class Server
<?php
/*** Example for swoole reload php code without shutdowning server.** @author Lancelot https://github.com/LinkedDestiny*/
class Server
{private $serv;public function __construct() {$this->serv = new swoole_server("0.0.0.0", 9501);$this->serv->set(array('worker_num' => 8,'daemonize' => false,'max_request' => 10000,'dispatch_mode' => 2,'debug_mode'=> 1,));$this->serv->on('Start', array($this, 'onStart'));$this->serv->on('WorkerStart', array($this, 'onWorkerStart'));$this->serv->on('Connect', array($this, 'onConnect'));$this->serv->on('Receive', array($this, 'onReceive'));$this->serv->on('Close', array($this, 'onClose'));$this->serv->start();}public function onStart( $serv ) {echo "Start\n";cli_set_process_title("reload_master");}public function onWorkerStart( $serv , $worker_id) {require_once "reload_page.php";Test();}public function onConnect( $serv, $fd, $from_id ) {echo "Client {$fd} connect\n";}public function onReceive( swoole_server $serv, $fd, $from_id, $data ) {echo "Get Message From Client {$fd}:{$data}\n";}public function onClose( $serv, $fd, $from_id ) {echo "Client {$fd} close connection\n";}
}
new Server();
reload.sh
echo "Reloading..."
cmd=$(pidof reload_master)kill -USR1 "$cmd"
echo "Reloaded"
reload_page.php
<?php
/*** If you change this function and want* swoole_server to use the new function,* just run 'reload.sh' to send a restart* signal to swoole_server.*/
function Test() {echo "This is not a php file\n";
}
操作流程如下
这个时候 reload_page.php 函数还是
大神代码里的注释试修改这个 那么我们开始修改 再执行.sh脚本 看看是否有变化
尝试修改为
然后执行脚本呢 脚本 记得 chmod a+x 授权一下
发现这个原来的sever改变了
变成了 i‘m fun 这里没加换行 大概就这样实现了热重启
swoole 热重启相关推荐
- 【Flutter】Flutter 混合开发 ( 混合开发中 Flutter 的 热重启 / 热加载 )
文章目录 前言 一.混合开发中启用 Flutter 的 热重启 / 热加载 二.混合开发中 Flutter 的 热重启 / 热加载 命令测试 三.指定混合应用连接的设备 四.相关资源 前言 上一篇博客 ...
- Go 如何实现热重启
作者:zhijiezhang,腾讯 PCG 后台开发工程师 最近在优化公司框架 trpc 时发现了一个热重启相关的问题,优化之余也总结沉淀下,对 go 如何实现热重启这方面的内容做一个简单的梳理. 1 ...
- exec go 重启_如何用 Go 实现热重启
热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务. 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socke ...
- golang iris web项目热重启
在开发web的时候,如果项目不支持热重启,每添加或修改个接口都需要重启项目才能测试,会很麻烦.都知道beego有bee工具,bee run启动项目即可,而在iris项目中热重启方法如下 # 安装riz ...
- Flutter开发(二十九):Flutter热重启、热加载、调试与发布应用
1.Flutter热重启.热加载 2.混合开发调试 dart 代码 3.发布应用 1.Flutter热重启.热加载 Flutter自带热重启/热加载的功能,但是到了 Android 项目中集成 Flu ...
- swoole的PHP热重启,swoole如何重启
在swoole中,我们可以向主进程发送各种不同的信号,主进程根据接收到的信号类型做出不同的处理. 比如下面这几个 (推荐学习:swoole视频教程)1.kill -SIGTERM|-15 master ...
- hyperf 热重启
安装Watcher(在项目根目录下安装) composer require hyperf/watcher --dev 生成Watcher配置文件 php bin/hyperf.php vendor:p ...
- 关于mysql的热重启的命令
为什么80%的码农都做不了架构师?>>> 在工作中,因需求,需要保证mysql重启不丢失数据,下面这个命令就可以做到啦 /etc/init.d/mysqld reload 转载 ...
- 将hyperf后台运行并热重启
下载两个文件 nohup ./zls-watch &
最新文章
- 直播|微软徐一翀:在常识问答中超越人类水平!自注意力与外注意力机制
- WPF DataGrid横向显示
- 哪里可以接到python的活干-学了Python以后,我干了很多不是人干的活
- C++关键字:重学记录
- linux_shell_根据网站来源分桶
- 深入理解计算机系统——bomblab
- Spring : Spring Aop CGLIB动态代理调用过程
- pip 错误:ModuleNotFoundError: No module named pip
- exists查询慢_8个SQL查询效率优化原则
- python 日期的周数_术业有专攻:日期时间模块datetime
- 网络安全应急响应实施过程
- 2021年中国兽医热疗室市场趋势报告、技术动态创新及2027年市场预测
- Facial landmarks: 使用 dlib, OpenCV, and Python提取面部标志点
- 如何在图片里藏其他文件
- 【樂理】中國古典音樂樂理
- 现代密码学大作业(一):实现单表替换的频率分析(python3.7)
- (一)JAVA基于OPENXML的word文档插入、合并、替换操作系列之基础篇
- 2019杭电多校第七场 Kejin Player HDU - 6656 (期望)
- Navicat导出ncx文件并解密连接密码
- idea不用鼠标写代码
热门文章
- 吴恩达|机器学习作业6.0支持向量机(SVM)
- POJ - 3984
- Google code android开源项目(五)
- apt-get常见错误
- python打印文件到字符串_请问Python打印字符串到文本文件
- 本硕一致计算机科学与技术专业介绍,哈尔滨理工大学计算机科学与技术专业介绍...
- discuz php 扩展环境 不支持,配置php扩展memcache
- Java枚举(Enum)类型使用的正确姿势
- 项目管理需要使用到的图表
- Extjs 实现Iframe的子窗口遮罩整个页面