From beefe59858ae39cb134dd3e403bedcc71f336561 Mon Sep 17 00:00:00 2001 From: ouqiang Date: Mon, 3 Apr 2017 10:20:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6ping=EF=BC=8C=E4=BF=9D?= =?UTF-8?q?=E6=8C=81=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 2 +- models/model.go | 14 +++++++++++++- routers/install/install.go | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 3e5860a..277319e 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main /*-------------------------------------------------------- 定时任务调度 兼容Linux crontab时间格式语法,最小粒度可精确到每秒 - 支持通过HTTP、SSH协议任务执行 + 支持通过HTTP、SSH协议执行任务 --------------------------------------------------------*/ import ( diff --git a/models/model.go b/models/model.go index 5550d07..86f4227 100644 --- a/models/model.go +++ b/models/model.go @@ -8,6 +8,7 @@ import ( "github.com/ouqiang/cron-scheduler/modules/setting" "gopkg.in/macaron.v1" "strings" + "time" ) type Status int8 @@ -42,12 +43,14 @@ func CreateDb(configFile string) *xorm.Engine { mapper := core.NewPrefixMapper(core.SnakeMapper{}, config["prefix"]) engine.SetTableMapper(mapper) } - // 本地环境开始日志 + // 本地环境开启日志 if macaron.Env == macaron.DEV { engine.ShowSQL(true) engine.Logger().SetLevel(core.LOG_DEBUG) } + go keepDbAlived(engine) + return engine } @@ -91,3 +94,12 @@ func getDbConfig(configFile string) map[string]string { return db } + +// 定时ping, 防止因数据库超时设置被断开 +func keepDbAlived(engine *xorm.Engine) { + t := time.Tick(180 * time.Second) + for { + <- t + engine.Ping() + } +} \ No newline at end of file diff --git a/routers/install/install.go b/routers/install/install.go index 7cfa8cc..362a259 100644 --- a/routers/install/install.go +++ b/routers/install/install.go @@ -14,7 +14,7 @@ import ( type InstallForm struct { DbType string `binding:"IN(mysql)"` DbHost string `binding:"Required"` - DbPort int `binding:"Required"` + DbPort int `binding:"Required"` // todo 限制端口范围1-65535, 为什么规则未生效? DbUsername string `binding:"Required"` DbPassword string `binding:"Required"` DbName string `binding:"Required"`