连接池

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)
}




posted @ 2019-12-20 00:38  离地最远的星  阅读(190)  评论(0编辑  收藏  举报