fixed bug

This commit is contained in:
link 2021-12-10 14:17:36 +08:00
parent 6c235d3f2a
commit 8660b95756
3 changed files with 23 additions and 9 deletions

View file

@ -70,5 +70,5 @@ type SystemConfig struct {
} }
type CasaOSGlobalVariables struct { type CasaOSGlobalVariables struct {
AddApp bool AppChange bool
} }

View file

@ -466,7 +466,7 @@ func InstallApp(c *gin.Context) {
// m.PortMap = m.Port // m.PortMap = m.Port
//} //}
service.MyService.App().SaveContainer(md) 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)}) c.JSON(http.StatusOK, model.Result{Success: oasis_err2.SUCCESS, Message: oasis_err2.GetMsg(oasis_err2.SUCCESS)})
} }

View file

@ -5,6 +5,7 @@ import (
"encoding/json" "encoding/json"
"io" "io"
"io/ioutil" "io/ioutil"
"reflect"
"runtime" "runtime"
"strings" "strings"
"sync" "sync"
@ -269,7 +270,6 @@ func (a *appStruct) GetHardwareUsage() []model.DockerStatsModel {
a.GetHardwareUsageSteam() a.GetHardwareUsageSteam()
}() }()
} }
// 切一下,再次分配任务
runtime.Gosched() runtime.Gosched()
} }
list := []model.DockerStatsModel{} list := []model.DockerStatsModel{}
@ -299,11 +299,22 @@ func (a *appStruct) GetHardwareUsageSteam() {
ctx, cancel := context.WithCancel(ctx) ctx, cancel := context.WithCancel(ctx)
var lm []model2.AppListDBModel 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 var list []types.ContainerStats
for i := 0; i < 100; i++ { for i := 0; i < 100; i++ {
if config.CasaOSGlobalVariables.AddApp { if config.CasaOSGlobalVariables.AppChange {
a.db.Table(model2.CONTAINERTABLENAME).Select("label,icon,container_id").Where("origin != ?", "system").Find(&lm) 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 var wg sync.WaitGroup
for _, v := range lm { for _, v := range lm {
@ -322,10 +333,13 @@ func (a *appStruct) GetHardwareUsageSteam() {
lock.Lock() lock.Lock()
dockerStats := model.DockerStatsModel{} dockerStats := model.DockerStatsModel{}
dockerStats.Pre = dataStr[v.ContainerId].Data dockerStats.Pre = dataStr[v.ContainerId].Data
dockerStats.Data = data dockerStats.Data = data
dockerStats.Icon = v.Icon 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 dataStr[v.ContainerId] = dockerStats
lock.Unlock() lock.Unlock()
}(v, lock) }(v, lock)