美文网首页
Beego开启热升级

Beego开启热升级

作者: Jaycee88 | 来源:发表于2019-02-28 20:21 被阅读0次

1、打开配置

beego.BConfig.Listen.Graceful = true

2、写入pid

程序入口main()函数里写入pid

func writePid() {
    fileName := "./test_server.pid"
    file, _ := os.OpenFile(fileName, os.O_RDWR|os.O_CREATE, 0666)
    defer file.Close()

    writer := bufio.NewWriter(file)

    pid := strconv.Itoa(os.Getpid())
    writer.Write([]byte(pid))
    writer.Flush()
}

3、测试热升级

1、编写代码,在beego应用的controller中Get方法实现大概如下:

func (this *MainController) Get() {
    a, _ := this.GetInt("sleep")
    time.Sleep(time.Duration(a) * time.Second)
    this.Ctx.WriteString("ospid:" + strconv.Itoa(os.Getpid()))
}

2、打开两个终端
一个终端输入:ps -ef | grep 应用名
一个终端输入请求:curl "http://127.0.0.1:8080/?sleep=20"

3、热升级
kill -HUP 进程ID

4、打开一个终端输入请求:curl "http://127.0.0.1:8080/?sleep=0"

我们可以看到这样的结果,第一个请求等待20s,但是处理他的是老的进程,热升级之后,第一个请求还在执行,最后会输出老的进程ID,而第二次请求,输出的是新的进程ID

相关文章

  • Beego开启热升级

    1、打开配置 2、写入pid 程序入口main()函数里写入pid 3、测试热升级 1、编写代码,在beego应用...

  • macOS安装Beego

    安装Beego 安装Go之后,用以下命令安装或升级Beego: 安装过程一直卡在git的clone阶段: 官方教程...

  • golang logs.info 打印不准确

    由于beego的版本升级,beego.info被标识为过期方法,我们就更新成了logs.info,结果打印出来的日...

  • beego-logs+viper实现logs日志记录配置文件热部

    Beego-logs+viper实现logs日志记录配置文件热部署 1.官方中文文档:[beego-logs]ht...

  • goland beego热部署

    beego本身是不能热部署的,需要配合bee工具使用在命令行里面输入bee run 即可

  • 1.1 Beego安装升级

    1.beego 的安装 beego 的安装是典型的 Go 安装包的形式: 常见问题: git 没有安装,请自行安装...

  • beego源码分析笔记一

    beego官网:https://beego.me/ beego 的架构 beego 的整体设计架构如下所示: 官方...

  • go bee入门

    1、安装 Go 1.1+ 以确保所有功能的正常使用,需要安装或者升级 Beego 和Bee的开发工具: $ go ...

  • ota go 服务搭建

    整体设计: golang&beego 在设计中,采用了golang 语言,使用了开源的beego , beego ...

  • Beego Architecture

    https://beego.me/[https://beego.me/] Beego框架起始于2012年由中国程序...

网友评论

      本文标题:Beego开启热升级

      本文链接:https://www.haomeiwen.com/subject/sdakuqtx.html