代码拉取完成,页面将自动刷新
package util
import (
"github.com/go-sql-driver/mysql"
"time"
)
type MysqlConnOption struct {
Dsn string
Addr string
DbName string
MaxOpen int
MaxIdle int
MaxIdleTime time.Duration
MaxLifetime time.Duration
}
func NewMysqlConnOption(
dsn string,
maxOpen, maxIdle int,
maxIdleTime, maxLifeTime time.Duration,
) (*MysqlConnOption, error) {
addr := ""
dbName := ""
if cfg, err := mysql.ParseDSN(dsn); err != nil {
return nil, err
} else if cfg.Addr == "" || cfg.DBName == "" {
return nil, ErrMysqlWrongDsn
} else {
addr = cfg.Addr
dbName = cfg.DBName
}
if maxOpen <= 0 {
maxOpen = NumCPU()*2 + 1
}
if maxIdle <= 0 {
maxIdle = maxOpen / 2
if maxIdle < 2 {
maxIdle = 2
}
}
if maxIdleTime < 0 {
maxIdleTime = 3 * time.Minute
}
if maxLifeTime < 0 {
maxLifeTime = 30 * time.Minute
}
return &MysqlConnOption{
Dsn: dsn,
Addr: addr,
DbName: dbName,
MaxOpen: maxOpen,
MaxIdle: maxIdle,
MaxIdleTime: maxIdleTime,
MaxLifetime: maxLifeTime,
}, nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。