Documentation ¶
Overview ¶
Package grace use to hot reload Description: http://grisha.org/blog/2014/06/03/graceful-restart-in-golang/
Usage:
import(
"log" "net/http" "os" "github.com/astaxie/beego/grace"
)
func handler(w http.ResponseWriter, r *http.Request) { w.Write([]byte("WORLD!")) } func main() { mux := http.NewServeMux() mux.HandleFunc("/hello", handler) err := grace.ListenAndServe("localhost:8080", mux) if err != nil { log.Println(err) } log.Println("Server on 8080 stopped") os.Exit(0) }
Index ¶
Constants ¶
const ( // PreSignal is the position to add filter before signal PreSignal = iota // PostSignal is the position to add filter after signal PostSignal // StateInit represent the application inited StateInit // StateRunning represent the application is running StateRunning // StateShuttingDown represent the application is shutting down StateShuttingDown // StateTerminate represent the application is killed StateTerminate )
Variables ¶
var ( // DefaultReadTimeOut is the HTTP read timeout DefaultReadTimeOut time.Duration // DefaultWriteTimeOut is the HTTP Write timeout DefaultWriteTimeOut time.Duration // DefaultMaxHeaderBytes is the Max HTTP Herder size, default is 0, no limit DefaultMaxHeaderBytes int // DefaultTimeout is the shutdown server's timeout. default is 60s DefaultTimeout = 60 * time.Second )
Functions ¶
func ListenAndServe ¶
ListenAndServe refer http.ListenAndServe
Types ¶
type Server ¶ added in v1.6.0
type Server struct { *http.Server GraceListener net.Listener SignalHooks map[int]map[os.Signal][]func() Network string // contains filtered or unexported fields }
Server embedded http.Server
func (*Server) ListenAndServe ¶ added in v1.6.0
ListenAndServe listens on the TCP network address srv.Addr and then calls Serve to handle requests on incoming connections. If srv.Addr is blank, ":http" is used.
func (*Server) ListenAndServeTLS ¶ added in v1.6.0
ListenAndServeTLS listens on the TCP network address srv.Addr and then calls Serve to handle requests on incoming TLS connections.
Filenames containing a certificate and matching private key for the server must be provided. If the certificate is signed by a certificate authority, the certFile should be the concatenation of the server's certificate followed by the CA's certificate.
If srv.Addr is blank, ":https" is used.
func (*Server) RegisterSignalHook ¶ added in v1.8.0
RegisterSignalHook registers a function to be run PreSignal or PostSignal for a given signal.