ms-tester/pkg/external/postgres/client.go

32 lines
575 B
Go
Raw Permalink Normal View History

2024-10-09 18:55:16 +00:00
package postgres
import (
2024-11-01 18:22:43 +00:00
_ "github.com/jackc/pgx/v5/stdlib"
2024-10-09 18:55:16 +00:00
"github.com/jmoiron/sqlx"
"time"
)
const (
maxOpenConns = 60
connMaxLifetime = 120
maxIdleConns = 30
connMaxIdleTime = 20
)
func NewPostgresDB(dsn string) (*sqlx.DB, error) {
db, err := sqlx.Open("pgx", dsn)
if err != nil {
return nil, err
}
db.SetMaxOpenConns(maxOpenConns)
db.SetConnMaxLifetime(connMaxLifetime * time.Second)
db.SetMaxIdleConns(maxIdleConns)
db.SetConnMaxIdleTime(connMaxIdleTime * time.Second)
if err = db.Ping(); err != nil {
return nil, err
}
return db, nil
}