废话不多说直接上代码

main.go

func main() {r := gin.Default()r.GET("/ping", func(context *gin.Context) {duration, err:= time.ParseDuration(context.Query("duration"))if err != nil{log.Println(err)return}time.Sleep(duration)context.JSON(200,gin.H{"msg":"Hello world  " + strconv.Itoa(os.Getpid())} )})endless.ListenAndServe(":8090",r) // 当然也支持https
}

windows下编译 需要设置环境变量为linux否则会报错

编译好后  endlessmain

在Linux 执行  ./endlessmain &

查看pid

修改原来的main文件 friend改成world 重新编译

覆盖 原来的文件 mv newfile endlessmain

测试:

1.打开新的窗口 请求 curl -i http://localhost:8090/ping?duration=30s

2.kill -1 pid  挂起信号  gin日志  15503收到信号 创建子进程15522 等待原来的链接结束

3.请求 curl -i http://localhost:8090/ping?duration=2s  子链接父进程结束 子进程变成父进程

自此 更新完成  过程中能看到两个进程均存在的时刻。

参考:https://www.dazhuanlan.com/diqing/topics/1100673

https://blog.csdn.net/bravezhe/article/details/82629901

https://github.com/facebookarchive/grace

gin结合endless实现热更新相关推荐

  1. linux进程热更新 go,Golang热更新原理

    Linux进程间通信方式 首先,进程之间为什么要进行通信呢?主要有以下应用场景: 数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间. 共享数据:多个进程想要操作共 ...

  2. 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新

    上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...

  3. 苹果禁止使用热更新 iOS开发程序员新转机来临

    今天本是女神们的节日,所有iOS程序员沸腾了!原因是苹果爸爸发狠了,部分iOS开发者收到了苹果的这封警告邮件: [图一 苹果邮件] 消息一出,一时间众多开发者众说纷纭,以下是来源于网络的各种看法: 有 ...

  4. 热更新 FrameWork

    工作中遇到想要绕过AppStore直接更新App的要求!这里友情提示下,看了很多资料只是是实现了功能,但在项目中并没有真正用到!资料大多都显示会被拒,这个说的是个人级的,好像企业级的不会这样,仅仅是项 ...

  5. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

    原型链是JS的必备,作为ECMAScript4,原型链也是支持的. 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用. 本文旨在介绍如何使用原型链 ...

  6. vue 热更新无反应_不吹不黑谈谈 vue 的 SFC 和 template

    大家好,好久不贱,我是 132,今天给大家带来一篇关于 SFC 的文章 为什么我曾经不看好 SFC 和 template 过去,我一直不看好 SFC 和 template,甚至因为这个观点,还被很多 ...

  7. vue热更新失效_vue cli@3项目style标签里面热更新失效的问题

    1.首先献上一片webpack的默认配置文档 const path = require('path') module.exports = { publicPath: './', // 基本路径 out ...

  8. python程序更新实现_Python 软件热更新

    Python 软件热更新 本篇文章涉及技术知识如下: Redis threading 多线程 PyQt5 importlib 热更新 场景 咱们在平时运行一些长时间都会一直运行的软件(如:某些云同步软 ...

  9. IDEA下用freemarker热更新的问题

    首先说说freemarker热更新的问题.网上很多博客写的freemarker配置热更新用的属性文件配置 template_update_delay=0 ,但我是写在xml里的,不知道这个应该配置在x ...

  10. webpack热更新实现

    原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...

最新文章

  1. android post请求添加公共参数_XHttp2 一个功能强悍的网络请求库
  2. Binder Driver浅析:Binder线程池
  3. 堆密度测定的意义_堆密度的测量
  4. final,finally和finalize的区别
  5. 怎么回事?在测量时仪器数值不稳
  6. JAVA——操场跑步路径定位模拟解决方案
  7. LeetCode 322. 零钱兑换(DP)
  8. 干货|设计师都收藏的9个实用灵感网站!
  9. feign 获取请求真实目的ip地址
  10. 小凡的Python之路——启航
  11. 软件测试是评价软件质量的标准吗,《软件评测师教程》读书笔记(3)-软件质量与评价(软件测试标准)...
  12. Windows 11企业版虚拟机镜像官方版下载及安装
  13. 绿色奖学金申请答辩PPT模板
  14. 软件资源学生优惠合集
  15. PowerShell复制粘贴快捷键
  16. Universal Robot——在Gazebo中模拟UR5机器人
  17. Qt加载百度离线地图
  18. PotPlayer播放蓝光片源及如何硬解码和音频源码输出
  19. Hu不变矩原理及opencv实现
  20. sketch html尺寸,SketchSize一键生成多尺寸,为何你的设计效率如此之高?

热门文章

  1. python数据库编程dbf_dbf文件怎么打开(python读写dbf数据库)
  2. 微服务使用模块化时候导入公共模块导致maven更新依赖错误问题
  3. TiDB x 中国电信翼支付 | 「效率提升 5 倍」,TiDB 在电信翼支付金融核心场景的应用
  4. 十七、DS1302的基本应用
  5. mysql结构化数据通过D2RQ导入Neo4j
  6. 韩信点兵问题的神解法
  7. c# dataset 和DataGridView的绑定详细
  8. KUI-金山界面库 自定义消息
  9. Linux下的图片编辑软件
  10. 短信验证码收不到了怎么办?