mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[chore] improved startup / shutdown (#2925)
* improved server shutdown with more precise shutdown of modules + deferring of ALL of it * make the same changes to the testrig server * use testrig specific func * update variable name to fix nilptr * fix removal of setting db on state
This commit is contained in:
@@ -122,7 +122,7 @@ func New(ctx context.Context) (*Router, error) {
|
||||
//
|
||||
// It will serve two handlers if letsencrypt is enabled,
|
||||
// and only the web/API handler if letsencrypt is not enabled.
|
||||
func (r *Router) Start() {
|
||||
func (r *Router) Start() error {
|
||||
var (
|
||||
// listen is the server start function.
|
||||
// By default this points to a regular
|
||||
@@ -143,10 +143,16 @@ func (r *Router) Start() {
|
||||
// that either both or neither of Chain and Key
|
||||
// are set, so we can forego checking again here.
|
||||
listen, err = r.customTLS(certFile, keyFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// TLS with letsencrypt.
|
||||
case leEnabled:
|
||||
listen, err = r.letsEncryptTLS()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Default listen. TLS must
|
||||
// be handled by reverse proxy.
|
||||
@@ -154,10 +160,6 @@ func (r *Router) Start() {
|
||||
listen = r.srv.ListenAndServe
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(nil, err)
|
||||
}
|
||||
|
||||
// Pass the server handler through a debug pprof middleware handler.
|
||||
// For standard production builds this will be a no-op, but when the
|
||||
// "debug" or "debugenv" build-tag is set pprof stats will be served
|
||||
@@ -177,12 +179,14 @@ func (r *Router) Start() {
|
||||
log.Fatalf(nil, "listen: %s", err)
|
||||
}
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Stop shuts down the router nicely
|
||||
func (r *Router) Stop(ctx context.Context) error {
|
||||
// Stop shuts down the router nicely.
|
||||
func (r *Router) Stop() error {
|
||||
log.Infof(nil, "shutting down http router with %s grace period", shutdownTimeout)
|
||||
timeout, cancel := context.WithTimeout(ctx, shutdownTimeout)
|
||||
timeout, cancel := context.WithTimeout(context.Background(), shutdownTimeout)
|
||||
defer cancel()
|
||||
|
||||
if err := r.srv.Shutdown(timeout); err != nil {
|
||||
|
Reference in New Issue
Block a user