数据库连接设置maxLifeTime

pull/164/head
ouqiang 2019-06-02 10:05:15 +08:00
parent aab450a3bf
commit 09985998ca
1 changed files with 11 additions and 5 deletions

View File

@ -6,9 +6,9 @@ import (
"time" "time"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
"github.com/go-xorm/core" "github.com/go-xorm/core"
"github.com/go-xorm/xorm" "github.com/go-xorm/xorm"
_ "github.com/lib/pq"
"github.com/ouqiang/gocron/internal/modules/app" "github.com/ouqiang/gocron/internal/modules/app"
"github.com/ouqiang/gocron/internal/modules/logger" "github.com/ouqiang/gocron/internal/modules/logger"
"github.com/ouqiang/gocron/internal/modules/setting" "github.com/ouqiang/gocron/internal/modules/setting"
@ -31,13 +31,18 @@ const (
) )
const ( const (
Page = 1 // 当前页数 Page = 1 // 当前页数
PageSize = 20 // 每页多少条数据 PageSize = 20 // 每页多少条数据
MaxPageSize = 100000 // 每次最多取多少条 MaxPageSize = 1000 // 每次最多取多少条
) )
const DefaultTimeFormat = "2006-01-02 15:04:05" const DefaultTimeFormat = "2006-01-02 15:04:05"
const (
dbPingInterval = 90 * time.Second
dbMaxLiftTime = 2 * time.Hour
)
type BaseModel struct { type BaseModel struct {
Page int `xorm:"-"` Page int `xorm:"-"`
PageSize int `xorm:"-"` PageSize int `xorm:"-"`
@ -73,6 +78,7 @@ func CreateDb() *xorm.Engine {
} }
engine.SetMaxIdleConns(app.Setting.Db.MaxIdleConns) engine.SetMaxIdleConns(app.Setting.Db.MaxIdleConns)
engine.SetMaxOpenConns(app.Setting.Db.MaxOpenConns) engine.SetMaxOpenConns(app.Setting.Db.MaxOpenConns)
engine.DB().SetConnMaxLifetime(dbMaxLiftTime)
if app.Setting.Db.Prefix != "" { if app.Setting.Db.Prefix != "" {
// 设置表前缀 // 设置表前缀
@ -124,7 +130,7 @@ func getDbEngineDSN(setting *setting.Setting) string {
} }
func keepDbAlived(engine *xorm.Engine) { func keepDbAlived(engine *xorm.Engine) {
t := time.Tick(180 * time.Second) t := time.Tick(dbPingInterval)
for { for {
<-t <-t
engine.Ping() engine.Ping()