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.