From c63967158b9ae2ccedcf985afe423106dce5da1f Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Thu, 6 Apr 2023 10:18:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=9B=91=E6=8E=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=89=B9=E9=87=8F=E6=8F=92=E5=85=A5=20(#512)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cron/job/monitor.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/backend/cron/job/monitor.go b/backend/cron/job/monitor.go index e91a8b054..8df90e176 100644 --- a/backend/cron/job/monitor.go +++ b/backend/cron/job/monitor.go @@ -66,6 +66,7 @@ func loadDiskIO() { time.Sleep(60 * time.Second) ioStat2, _ := disk.IOCounters() + var ioList []model.MonitorIO for _, io2 := range ioStat2 { for _, io1 := range ioStat { if io2.Name == io1.Name { @@ -85,13 +86,14 @@ func loadDiskIO() { if writeTime > itemIO.Time { itemIO.Time = writeTime } - if err := global.DB.Create(&itemIO).Error; err != nil { - global.LOG.Errorf("Insert io monitoring data failed, err: %v", err) - } + ioList = append(ioList, itemIO) break } } } + if err := global.DB.CreateInBatches(ioList, len(ioList)).Error; err != nil { + global.LOG.Errorf("Insert io monitoring data failed, err: %v", err) + } } func loadNetIO() { @@ -101,6 +103,7 @@ func loadNetIO() { time.Sleep(60 * time.Second) netStat2, _ := net.IOCounters(true) + var netList []model.MonitorNetwork for _, net2 := range netStat2 { for _, net1 := range netStat { if net2.Name == net1.Name { @@ -108,9 +111,7 @@ func loadNetIO() { itemNet.Name = net1.Name itemNet.Up = float64(net2.BytesSent-net1.BytesSent) / 1024 / 60 itemNet.Down = float64(net2.BytesRecv-net1.BytesRecv) / 1024 / 60 - if err := global.DB.Create(&itemNet).Error; err != nil { - global.LOG.Errorf("Insert network monitoring data failed, err: %v", err) - } + netList = append(netList, itemNet) break } } @@ -126,11 +127,13 @@ func loadNetIO() { itemNet.Name = net1.Name itemNet.Up = float64(net2.BytesSent-net1.BytesSent) / 1024 / 60 itemNet.Down = float64(net2.BytesRecv-net1.BytesRecv) / 1024 / 60 - if err := global.DB.Create(&itemNet).Error; err != nil { - global.LOG.Errorf("Insert network all monitoring data failed, err: %v", err) - } + netList = append(netList, itemNet) break } } } + + if err := global.DB.CreateInBatches(netList, len(netList)).Error; err != nil { + global.LOG.Errorf("Insert network monitoring data failed, err: %v", err) + } }