работает, вопрос: в DbConnect у меня ведь всегда один
экземпляр подключения к базе?
Т.е. во всех остальных пакетах, когда делаю импорт данной переменной
я получаю всегда одно и тоже соединение и заного не подрубаюсь к базе?
Вроде всё правильно сделал, но уточнить хочу.
package db
/**
* экспортируемая переменная,
* которая становиться доступна
* во всех остальных пакетах
*/
var DbConnect *sql.DB
func DbInit() {
...
db, err := sql.Open("postgres", connStr)
if err != nil {
log.Fatal(err)
}
DbConnect = db
}
можете управлять максимальным количеством соединений через паке sql db.SetMaxIdleConns db.SetConnMaxLifetime db.SetMaxOpenConns
Имя переменной совпадает с именем пакета + ещё гонка у вас. Кто зовёт DbInet() и что будет если его позовут несколько раз?
Обсуждают сегодня