使用 Go cron 包,我每秒运行以下代码:
func dbPGConnectionCount(db *sql.DB) (int64, error) {
var connectionCount int64
rows, err := db.Query(`SELECT count(1) from pg_stat_activity;`)
if err != nil {
return 0, err
}
defer rows.Close()
for rows.Next() {
err = rows.Scan(&connectionCount)
if err != nil {
return 0, err
}
}
return connectionCount, err
}
其中db是用于连接到 PostgreSQL 的连接池。
感谢这个defer声明,我预计 PostgreSQL 不会保持任何连接打开。然而,在启动我的程序后不久,当我检查时,select * from pg_stat_activity我看到每秒都会添加新的空闲查询。
我究竟做错了什么?
慕尼黑的夜晚无繁华
相关分类