![](https://xiahualou.oss-cn-shanghai.aliyuncs.com/img/20191219150802.png)
func init() {
DBHelper, err = gorm.Open("mysql", "root:root@(115.159.59.129:3306)/test?charset=utf8&parseTime=True&loc=Local")
DBHelper.SingularTable(true)
DBHelper.DB().SetMaxIdleConns(10) //最大空闲时间
DBHelper.DB().SetMaxOpenConns(100) //最大打开连接
DBHelper.DB().SetConnMaxLifetime(time.Hour) //连接最长存活时间
if err != nil {
panic(err)
}
}
简单连接池,信号处理,优雅退出
func main() {
c := make(chan os.Signal)
go func() {
ctx, _ := context.WithTimeout(context.Background(), time.Second*5)
select {
case <-ctx.Done(): //到达5秒会写入信号,外层就会终止阻塞
c <- os.Interrupt
}
}()
signal.Notify(c)
s := <-c //当检测到信号就会结束阻塞
fmt.Println(s)
}