From 01b845736c2030c699a8f55c971834ef78773b0b Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Fri, 13 May 2022 22:16:02 +0200
Subject: [PATCH] feat: improve shutdown handling

Signed-off-by: Janne Mareike Koschinski <janne@kuschku.de>
---
 backend/main.go | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/backend/main.go b/backend/main.go
index ff30068..8a2d36f 100644
--- a/backend/main.go
+++ b/backend/main.go
@@ -57,13 +57,16 @@ func main() {
 		if err := metrics.ListenAndServe(); err != nil && err != http.ErrServerClosed {
 			log.Printf("error in metrics server: %s", err.Error())
 		}
+		log.Printf("metrics shut down, shutting down asynq as well")
 		srv.Shutdown()
 	}()
-
-	if err := srv.Run(mux); err != nil {
-		log.Printf("error in asynq server: %s", err.Error())
-	}
-	if err := metrics.Shutdown(context.Background()); err != nil {
-		log.Printf("error shutting down metrics server: %s", err.Error())
-	}
+	go func() {
+		if err := srv.Run(mux); err != nil {
+			log.Printf("error in asynq server: %s", err.Error())
+		}
+		log.Printf("asynq shut down, shutting down metrics as well")
+		if err := metrics.Shutdown(context.Background()); err != nil {
+			log.Printf("error shutting down metrics server: %s", err.Error())
+		}
+	}()
 }
-- 
GitLab