fix db connection and timeout

This commit is contained in:
2025-04-19 16:46:08 +02:00
parent dce8873b63
commit cc9a863311
4 changed files with 41 additions and 28 deletions

View File

@@ -37,7 +37,7 @@ func New(
panic("database operation timeout is required")
}
return &server{db: drv, health: hc, logger: logger}
return &server{db: drv, health: hc, logger: logger, dbOpTimeout: databaseOperationTimeout}
}
func (srv *server) HealthCheck(c *gin.Context) {

View File

@@ -2,6 +2,7 @@ package memgraph
import (
"context"
"time"
"github.com/neo4j/neo4j-go-driver/v5/neo4j"
"go.uber.org/zap"
@@ -14,10 +15,23 @@ func InitDatabase(logger *zap.Logger, dbURI, dbUser, dbPassword string) neo4j.Dr
}
ctx := context.Background()
for attempt := 1; attempt <= 5; attempt++ {
err = driver.VerifyConnectivity(ctx)
if err == nil {
break
}
logger.Warn("Retrying connection to db...",
zap.Error(err),
zap.String("dbUser", dbUser),
zap.String("dbURI", dbURI),
zap.Int("attempt", attempt),
)
time.Sleep(time.Duration(attempt*5) * time.Second)
}
err = driver.VerifyConnectivity(ctx)
if err != nil {
logger.Panic("Unable to connect to db:", zap.Error(err),
logger.Panic("Unable to connect to db after retries:", zap.Error(err),
zap.String("dbUser", dbUser),
zap.String("dbURI", dbURI),
)