Make middleware survive a restart (#142)

Make middleware that sets up a (http) handler survive a graceful
restart. We calls the middleware's Shutdown function(s). If restart
fails the Start function is called again.

* middleware/health: OK
* middleware/pprof: OK
* middleware/metrics: OK

All restart OK.
This commit is contained in:
Miek Gieben
2016-04-29 07:28:35 +01:00
parent a1478f891d
commit 9e9d72655d
10 changed files with 132 additions and 54 deletions

View File

@@ -11,8 +11,9 @@ func Health(c *Controller) (middleware.Middleware, error) {
return nil, err
}
h := health.Health{Addr: addr}
c.Startup = append(c.Startup, h.ListenAndServe)
h := &health.Health{Addr: addr}
c.Startup = append(c.Startup, h.Start)
c.Shutdown = append(c.Shutdown, h.Shutdown)
return nil, nil
}