From 85ce3a101846a0a665bdfb390beac30b43988cc9 Mon Sep 17 00:00:00 2001 From: Vladimir Ivanov Date: Sat, 16 Jan 2021 19:35:02 +0200 Subject: [PATCH] Update api/database/database.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Viktor Strate Kløvedal --- api/database/database.go | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/api/database/database.go b/api/database/database.go index 61d856c9..4e8da411 100644 --- a/api/database/database.go +++ b/api/database/database.go @@ -50,23 +50,20 @@ func SetupDatabase() (*gorm.DB, error) { sqlDB.SetMaxOpenConns(80) if err != nil { - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - for retryCount := 1; retryCount <= 5; retryCount++ { - select { - case <-ctx.Done(): - log.Println(ctx.Err()) - return nil, err - default: - if err := sqlDB.PingContext(ctx); err != nil { - log.Printf("WARN: Could not ping database: %s, Will retry after 1 second", err) - time.Sleep(time.Second) - } else { - return db, nil - } + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + + if err := sqlDB.PingContext(ctx); err == nil { + cancel() + return db, nil } + + cancel() + + log.Printf("WARN: Could not ping database: %s. Will retry after 5 seconds\n", err) + time.Sleep(time.Duration(5) * time.Second) } + return nil, err }