From cf043f7acd57ba2845a18bfcfe1c52680688e107 Mon Sep 17 00:00:00 2001 From: liuzx Date: Tue, 22 Nov 2022 11:28:12 +0800 Subject: [PATCH 1/2] fix-kanban --- routers/api/v1/repo/cloudbrain_dashboard.go | 86 ++++++++++----------- routers/repo/cloudbrain_statistic.go | 3 + 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 446522fc2..2cd7abfbe 100755 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -138,52 +138,50 @@ func GetOverviewDuration(ctx *context.Context) { c2NetDuration := int64(0) cDCenterDuration := int64(0) - cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ - Type: models.TypeCloudBrainAll, - BeginTimeUnix: int64(recordBeginTime), - EndTimeUnix: endTime.Unix(), - }) - if err != nil { - ctx.ServerError("Get cloudbrains failed:", err) - return - } - models.LoadSpecs4CloudbrainInfo(cloudbrains) - - for _, cloudbrain := range cloudbrains { - cloudbrain = cloudbrainService.UpdateCloudbrainAiCenter(cloudbrain) - CardDurationString := repo.GetCloudbrainCardDuration(cloudbrain.Cloudbrain) - CardDuration := models.ConvertStrToDuration(CardDurationString) - // if cloudbrain.Cloudbrain.WorkServerNumber >= 1 { - // worker_server_num = cloudbrain.Cloudbrain.WorkServerNumber - // } else { - // worker_server_num = 1 - // } - // if cloudbrain.Cloudbrain.Spec == nil { - // cardNum = 1 - // } else { - // cardNum = cloudbrain.Cloudbrain.Spec.AccCardsNum - // } - // duration := cloudbrain.Duration - // duration := cloudbrain.Duration - duration := models.ConvertStrToDuration(cloudbrain.TrainJobDuration) - // CardDuration := cloudbrain.Duration * int64(worker_server_num) * int64(cardNum) - - if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainOne { - cloudBrainOneDuration += duration - cloudBrainOneCardDuSum += CardDuration - } else if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainTwo { - cloudBrainTwoDuration += duration - cloudBrainTwoCardDuSum += CardDuration - } else if cloudbrain.Cloudbrain.Type == models.TypeC2Net { - c2NetDuration += duration - c2NetCardDuSum += CardDuration - } else if cloudbrain.Cloudbrain.Type == models.TypeCDCenter { - cDCenterDuration += duration - cDNetCardDuSum += CardDuration + page := 1 + pagesize := 10000 + count := pagesize + //Each time a maximum of 10000 pieces of data are detected to the memory, batch processing + for count == pagesize && count != 0 { + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ + ListOptions: models.ListOptions{ + Page: page, + PageSize: pagesize, + }, + Type: models.TypeCloudBrainAll, + BeginTimeUnix: int64(recordBeginTime), + EndTimeUnix: endTime.Unix(), + }) + if err != nil { + ctx.ServerError("Get cloudbrains failed:", err) + return } + models.LoadSpecs4CloudbrainInfo(cloudbrains) + + for _, cloudbrain := range cloudbrains { + cloudbrain = cloudbrainService.UpdateCloudbrainAiCenter(cloudbrain) + CardDurationString := repo.GetCloudbrainCardDuration(cloudbrain.Cloudbrain) + CardDuration := models.ConvertStrToDuration(CardDurationString) + duration := models.ConvertStrToDuration(cloudbrain.TrainJobDuration) + if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainOne { + cloudBrainOneDuration += duration + cloudBrainOneCardDuSum += CardDuration + } else if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainTwo { + cloudBrainTwoDuration += duration + cloudBrainTwoCardDuSum += CardDuration + } else if cloudbrain.Cloudbrain.Type == models.TypeC2Net { + c2NetDuration += duration + c2NetCardDuSum += CardDuration + } else if cloudbrain.Cloudbrain.Type == models.TypeCDCenter { + cDCenterDuration += duration + cDNetCardDuSum += CardDuration + } - durationAllSum += duration - cardDuSum += CardDuration + durationAllSum += duration + cardDuSum += CardDuration + } + count = len(cloudbrains) + page += 1 } ctx.JSON(http.StatusOK, map[string]interface{}{ "cloudBrainOneCardDuSum": cloudBrainOneCardDuSum, diff --git a/routers/repo/cloudbrain_statistic.go b/routers/repo/cloudbrain_statistic.go index 4476b3e45..b80d05c83 100644 --- a/routers/repo/cloudbrain_statistic.go +++ b/routers/repo/cloudbrain_statistic.go @@ -248,6 +248,9 @@ func CloudbrainUpdateHistoryData(ctx *context.Context) { endTimeStr := ctx.QueryTrim("endTime") beginTime, _ := time.ParseInLocation("2006-01-02 15:04:05", beginTimeStr, time.Local) endTime, _ := time.ParseInLocation("2006-01-02 15:04:05", endTimeStr, time.Local) + if time.Now().Before(endTime) { + endTime = time.Now() + } beginTimeUnix := timeutil.TimeStamp(beginTime.Unix()) endTimeUnix := timeutil.TimeStamp(endTime.Unix()) From 0a3c0caceefcaa58b10f0dcc6d692398636c3167 Mon Sep 17 00:00:00 2001 From: liuzx Date: Tue, 22 Nov 2022 16:58:02 +0800 Subject: [PATCH 2/2] fix-kanban --- routers/api/v1/repo/cloudbrain_dashboard.go | 21 +++++++++++++++----- routers/repo/cloudbrain_statistic.go | 22 ++++++++++++--------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 2cd7abfbe..09e65b007 100755 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -123,8 +123,9 @@ func GetOverviewDuration(ctx *context.Context) { recordBeginTime := recordCloudbrain[0].Cloudbrain.CreatedUnix now := time.Now() endTime := now - // worker_server_num := 1 - // cardNum := 1 + var workServerNumber int64 + var cardNum int64 + durationAllSum := int64(0) cardDuSum := int64(0) @@ -141,7 +142,7 @@ func GetOverviewDuration(ctx *context.Context) { page := 1 pagesize := 10000 count := pagesize - //Each time a maximum of 10000 pieces of data are detected to the memory, batch processing + // Each time a maximum of 10000 pieces of data are detected to the memory, batch processing for count == pagesize && count != 0 { cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ @@ -160,9 +161,19 @@ func GetOverviewDuration(ctx *context.Context) { for _, cloudbrain := range cloudbrains { cloudbrain = cloudbrainService.UpdateCloudbrainAiCenter(cloudbrain) - CardDurationString := repo.GetCloudbrainCardDuration(cloudbrain.Cloudbrain) - CardDuration := models.ConvertStrToDuration(CardDurationString) + if cloudbrain.Cloudbrain.Spec != nil { + cardNum = int64(cloudbrain.Cloudbrain.Spec.AccCardsNum) + } else { + cardNum = 1 + } + if cloudbrain.Cloudbrain.WorkServerNumber >= 1 { + workServerNumber = int64(cloudbrain.Cloudbrain.WorkServerNumber) + } else { + workServerNumber = 1 + } duration := models.ConvertStrToDuration(cloudbrain.TrainJobDuration) + CardDuration := workServerNumber * int64(cardNum) * duration + if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainOne { cloudBrainOneDuration += duration cloudBrainOneCardDuSum += CardDuration diff --git a/routers/repo/cloudbrain_statistic.go b/routers/repo/cloudbrain_statistic.go index b80d05c83..2ec12cd41 100644 --- a/routers/repo/cloudbrain_statistic.go +++ b/routers/repo/cloudbrain_statistic.go @@ -246,16 +246,20 @@ func getcloudBrainCenterCodeAndCardTypeInfo(ciTasks []*models.CloudbrainInfo, be func CloudbrainUpdateHistoryData(ctx *context.Context) { beginTimeStr := ctx.QueryTrim("beginTime") endTimeStr := ctx.QueryTrim("endTime") - beginTime, _ := time.ParseInLocation("2006-01-02 15:04:05", beginTimeStr, time.Local) - endTime, _ := time.ParseInLocation("2006-01-02 15:04:05", endTimeStr, time.Local) - if time.Now().Before(endTime) { - endTime = time.Now() - } - beginTimeUnix := timeutil.TimeStamp(beginTime.Unix()) - endTimeUnix := timeutil.TimeStamp(endTime.Unix()) + var count int64 + var err error + if beginTimeStr != "" && endTimeStr != "" { + beginTime, _ := time.ParseInLocation("2006-01-02 15:04:05", beginTimeStr, time.Local) + endTime, _ := time.ParseInLocation("2006-01-02 15:04:05", endTimeStr, time.Local) + if time.Now().Before(endTime) { + endTime = time.Now() + } + beginTimeUnix := timeutil.TimeStamp(beginTime.Unix()) + endTimeUnix := timeutil.TimeStamp(endTime.Unix()) - err := models.DeleteCloudbrainDurationStatistic(beginTimeUnix, endTimeUnix) - count := UpdateDurationStatisticHistoryData(beginTime, endTime) + err = models.DeleteCloudbrainDurationStatistic(beginTimeUnix, endTimeUnix) + count = UpdateDurationStatisticHistoryData(beginTime.Add(+1*time.Hour), endTime) + } ctx.JSON(http.StatusOK, map[string]interface{}{ "message": 0, "count": count,