fix: improved handling of http server shutdown

This commit is contained in:
Torkel Ödegaard
2018-05-01 14:13:38 +02:00
parent 0fc4da810f
commit 13e015fe3f
2 changed files with 17 additions and 8 deletions

View File

@ -60,6 +60,16 @@ func (hs *HTTPServer) Start(ctx context.Context) error {
hs.log.Info("Initializing HTTP Server", "address", listenAddr, "protocol", setting.Protocol, "subUrl", setting.AppSubUrl, "socket", setting.SocketPath)
hs.httpSrv = &http.Server{Addr: listenAddr, Handler: hs.macaron}
// handle http shutdown on server context done
go func() {
<-ctx.Done()
if err := hs.httpSrv.Shutdown(context.Background()); err != nil {
hs.log.Error("Failed to shutdown server", "error", err)
}
hs.log.Info("Stopped HTTP Server")
}()
switch setting.Protocol {
case setting.HTTP:
err = hs.httpSrv.ListenAndServe()