mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-14 05:52:43 +00:00
Make db connect more robust (#5738)
This commit is contained in:
parent
f54e0d2f16
commit
1bb22b2b47
4 changed files with 41 additions and 10 deletions
|
@ -7,6 +7,7 @@ package routers
|
|||
import (
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"code.gitea.io/git"
|
||||
"code.gitea.io/gitea/models"
|
||||
|
@ -42,6 +43,24 @@ func NewServices() {
|
|||
cache.NewContext()
|
||||
}
|
||||
|
||||
// In case of problems connecting to DB, retry connection. Eg, PGSQL in Docker Container on Synology
|
||||
func initDBEngine() (err error) {
|
||||
log.Info("Beginning ORM engine initialization.")
|
||||
for i := 0; i < setting.DBConnectRetries; i++ {
|
||||
log.Info("ORM engine initialization attempt #%d/%d...", i+1, setting.DBConnectRetries)
|
||||
if err := models.NewEngine(migrations.Migrate); err == nil {
|
||||
break
|
||||
} else if i == setting.DBConnectRetries-1 {
|
||||
return err
|
||||
}
|
||||
log.Debug("ORM engine initialization attempt #%d/%d failed. Error: %v", i+1, setting.DBConnectRetries, err)
|
||||
log.Info("Backing off for %d seconds", int64(setting.DBConnectBackoff/time.Second))
|
||||
time.Sleep(setting.DBConnectBackoff)
|
||||
}
|
||||
models.HasEngine = true
|
||||
return nil
|
||||
}
|
||||
|
||||
// GlobalInit is for global configuration reload-able.
|
||||
func GlobalInit() {
|
||||
setting.NewContext()
|
||||
|
@ -56,11 +75,12 @@ func GlobalInit() {
|
|||
if setting.InstallLock {
|
||||
highlight.NewContext()
|
||||
markup.Init()
|
||||
|
||||
if err := models.NewEngine(migrations.Migrate); err != nil {
|
||||
log.Fatal(4, "Failed to initialize ORM engine: %v", err)
|
||||
if err := initDBEngine(); err == nil {
|
||||
log.Info("ORM engine initialization successful!")
|
||||
} else {
|
||||
log.Fatal(4, "ORM engine initialization failed: %v", err)
|
||||
}
|
||||
models.HasEngine = true
|
||||
|
||||
if err := models.InitOAuth2(); err != nil {
|
||||
log.Fatal(4, "Failed to initialize OAuth2 support: %v", err)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue