golang中使用Shutdown特性对http服务进行优雅退出使用总结

golang 程序启动一个 http 服务时,若服务被意外终止或中断,会让现有请求连接突然中断,未处理完成的任务也会出现不可预知的错误,这样即会造成服务硬终止;为了解决硬终止问题我们希望服务中断或退出时将正在处理的请求正常返回并且等待服务停止前作的一些必要的处理工作。

我们可以看一个硬终止的例子:

mux := http.NewServeMux() mux.HandleFunc("http://www.likecs.com/", func(w http.ResponseWriter, r *http.Request) { time.Sleep(5 * time.Second) fmt.Fprintln(w, "Hello world!") }) server := &http.Server{ Addr: ":8080", Handler: mux, } server.ListenAndServe()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwgpjx.html