From 77c079665a4184ed6d2a171b818dd069bc1168a1 Mon Sep 17 00:00:00 2001 From: georgehao Date: Tue, 13 Aug 2019 23:19:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=8A=98=E7=BA=BF=E5=9B=BE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/home.go | 3 +-- models/task_log.go | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/controllers/home.go b/controllers/home.go index 7d86643..9519eb5 100644 --- a/controllers/home.go +++ b/controllers/home.go @@ -15,8 +15,6 @@ import ( "runtime" "sort" "strconv" - - //"strconv" "time" ) @@ -173,6 +171,7 @@ func (self *HomeController) Start() { self.Data["okNum"] = okNum self.Data["errNum"] = errNum self.Data["expiredNum"] = expiredNum + self.Data["cpuNum"] = runtime.NumCPU() //系统运行信息 diff --git a/models/task_log.go b/models/task_log.go index 6811289..f0d2b3e 100644 --- a/models/task_log.go +++ b/models/task_log.go @@ -8,7 +8,11 @@ package models import ( + "encoding/json" + "github.com/astaxie/beego/cache" + "github.com/astaxie/beego/logs" "github.com/astaxie/beego/orm" + "time" ) type TaskLog struct { @@ -23,6 +27,8 @@ type TaskLog struct { CreateTime int64 } +var RunNumCache, _ = cache.NewCache("memory", `{"interval":60}`) + func (t *TaskLog) TableName() string { return TableName("task_log") } @@ -81,12 +87,32 @@ type SumDays struct { } func SumByDays(limit int, status string) orm.Params { + + var m = map[string]string{ + "0": "okNum", + "-1": "errNum", + "-2": "expiredRun"} + res := make(orm.Params) + key := m[status] + + if RunNumCache.IsExist(key) { + json.Unmarshal(RunNumCache.Get(key).([]byte), &res) + logs.Info("cache") + return res + } _, err := orm.NewOrm().Raw("SELECT FROM_UNIXTIME(create_time,'%Y-%m-%d') days,COUNT(id) count FROM pp_task_log WHERE status in(?) GROUP BY days ORDER BY days DESC limit ?;", status, limit).RowsToMap(&res, "days", "count") if err != nil { return nil } + + data, err := json.Marshal(res) + if err != nil { + return nil + } + RunNumCache.Put(key, data, 2*time.Hour) return res + }