Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 950 Bytes

File metadata and controls

48 lines (39 loc) · 950 Bytes

reloader

基于net.TCPListener的无间断重启服务,暴露listener供业务代码扩充

  1. 基于HTTP Server通用方法:
package main

import (
    "net/http"
    "github.com/maxyma/reloader"
)

func main(){
    rl := reloader.NewReloader("127.0.0.1:8080")
    if err:=rl.Bind(); err==nil {
        http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
            w.Write([]byte("Hello, world!\n"))
        })
        rl.HttpServe(&http.Server{})
    }
}
  1. socket server用法
package main

import (
    "net/http"
    "github.com/maxyma/reloader"
)

func main(){
    rl := reloader.NewReloader("127.0.0.1:9001")
    if err:=rl.Bind(); err==nil {
        http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
            w.Write([]byte("Hello, world!\n"))
        })
        http.Serve(rl.GetListener(), nil)
        rl.Wait()
    }
}
  1. 重启

$ kill -s HUP ${PID}