Давайте рассмотрим следующую процедуру:
func main(){
...
go dbGoRoutine()
...
}
И функцию:
func dbGoRoutine() {
db, err := sqlx.Connect("postgres", GetPSQLInfo())
if err != nil {
panic(err)
}
defer db.Close()
ticker := time.NewTicker(10 * time.Second)
for _ = range ticker.C {
_, err := db.Queryx("SELECT * FROM table")
if err != nil {
// handle
}
}
}
Каждый раз, когда функция повторяется в тикере, она открывает соединение с CloudSQL
[service... cloudsql-proxy] 2019/11/08 17:05:05 New connection for "location:exemple-db"
Я не могу понять, почему он каждый раз открывает новое соединение, поскольку sqlx.Connect не находится в цикле for.