From d41c21a7b807784ecd59645a1fb1145db365703f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BE=99?= Date: Thu, 13 Jul 2023 10:20:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E6=9C=BA=E7=8A=B6=E6=80=81=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/host_manage.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/service/host_manage.go b/src/service/host_manage.go index 148898f..d60d69e 100644 --- a/src/service/host_manage.go +++ b/src/service/host_manage.go @@ -456,21 +456,25 @@ func (h *HostManageSvc) ListStateHostManage(req request.StateHostManageReq) (err // 使用协程批量执行 ping 命令 var wg sync.WaitGroup + var lock sync.Mutex wg.Add(len(hostManageList)) successHost := make([]int, 0) fail := make([]int, 0) for i := 0; i < len(hostManageList); i++ { - go func() { - i = i + go func(i int) { //修改状态 connStatus := StatusDetection(hostManageList[i].Ip) if connStatus == 1 { + lock.Lock() fail = append(fail, hostManageList[i].Id) + lock.Unlock() } else { + lock.Lock() successHost = append(successHost, hostManageList[i].Id) + lock.Unlock() } - wg.Done() - }() + defer wg.Done() + }(i) } wg.Wait() -- 2.26.0