From 8660b9575636d4f3c366c40fd66e3764c3cd532d Mon Sep 17 00:00:00 2001 From: link Date: Fri, 10 Dec 2021 14:17:36 +0800 Subject: [PATCH] fixed bug --- model/sys_common.go | 2 +- route/v1/docker.go | 4 ++-- service/app.go | 26 ++++++++++++++++++++------ 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/model/sys_common.go b/model/sys_common.go index 7cb2cd8..2c432ca 100644 --- a/model/sys_common.go +++ b/model/sys_common.go @@ -70,5 +70,5 @@ type SystemConfig struct { } type CasaOSGlobalVariables struct { - AddApp bool + AppChange bool } diff --git a/route/v1/docker.go b/route/v1/docker.go index 68f630e..44bfbf3 100644 --- a/route/v1/docker.go +++ b/route/v1/docker.go @@ -466,7 +466,7 @@ func InstallApp(c *gin.Context) { // m.PortMap = m.Port //} service.MyService.App().SaveContainer(md) - config.CasaOSGlobalVariables.AddApp = true + config.CasaOSGlobalVariables.AppChange = true }() @@ -743,7 +743,7 @@ func UnInstallApp(c *gin.Context) { // } //} } - + config.CasaOSGlobalVariables.AppChange = true c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)}) } diff --git a/service/app.go b/service/app.go index 4ad3f97..430bf61 100644 --- a/service/app.go +++ b/service/app.go @@ -5,6 +5,7 @@ import ( "encoding/json" "io" "io/ioutil" + "reflect" "runtime" "strings" "sync" @@ -269,7 +270,6 @@ func (a *appStruct) GetHardwareUsage() []model.DockerStatsModel { a.GetHardwareUsageSteam() }() } - // 切一下,再次分配任务 runtime.Gosched() } list := []model.DockerStatsModel{} @@ -299,11 +299,22 @@ func (a *appStruct) GetHardwareUsageSteam() { ctx, cancel := context.WithCancel(ctx) var lm []model2.AppListDBModel - a.db.Table(model2.CONTAINERTABLENAME).Select("label,icon,container_id").Where("origin != ?", "system").Find(&lm) + a.db.Table(model2.CONTAINERTABLENAME).Select("label,title,icon,container_id").Where("origin != ?", "system").Find(&lm) var list []types.ContainerStats for i := 0; i < 100; i++ { - if config.CasaOSGlobalVariables.AddApp { - a.db.Table(model2.CONTAINERTABLENAME).Select("label,icon,container_id").Where("origin != ?", "system").Find(&lm) + if config.CasaOSGlobalVariables.AppChange { + lm = []model2.AppListDBModel{} + config.CasaOSGlobalVariables.AppChange = false + a.db.Table(model2.CONTAINERTABLENAME).Select("label,title,icon,container_id").Where("origin != ?", "system").Find(&lm) + dataApps := dataStr + lock.Lock() + dataStr = make(map[string]model.DockerStatsModel) + for _, v := range lm { + if !reflect.DeepEqual(dataApps[v.ContainerId], model.DockerStatsModel{}) { + dataStr[v.ContainerId] = dataApps[v.ContainerId] + } + } + lock.Unlock() } var wg sync.WaitGroup for _, v := range lm { @@ -322,10 +333,13 @@ func (a *appStruct) GetHardwareUsageSteam() { lock.Lock() dockerStats := model.DockerStatsModel{} dockerStats.Pre = dataStr[v.ContainerId].Data - dockerStats.Data = data dockerStats.Icon = v.Icon - dockerStats.Title = v.Label + if len(v.Label) > 0 { + dockerStats.Title = v.Label + } else { + dockerStats.Title = v.Title + } dataStr[v.ContainerId] = dockerStats lock.Unlock() }(v, lock)