From 44c265e181800d434f6c1e46ff13912a2de63361 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:50:36 +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 | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/service/host_manage.go b/src/service/host_manage.go index d60d69e..4a3f508 100644 --- a/src/service/host_manage.go +++ b/src/service/host_manage.go @@ -462,7 +462,7 @@ func (h *HostManageSvc) ListStateHostManage(req request.StateHostManageReq) (err fail := make([]int, 0) for i := 0; i < len(hostManageList); i++ { go func(i int) { - //修改状态 + //检测ip连通性 connStatus := StatusDetection(hostManageList[i].Ip) if connStatus == 1 { lock.Lock() @@ -587,13 +587,27 @@ func (h *HostManageSvc) SaveStateHostManage(hostManageList []request.HostManageL return } - //状态检测 + // 使用协程批量执行 ping 命令 + var wg sync.WaitGroup + wg.Add(len(hostManageListCaches)) id = uuid.New().String() - for k, v := range hostManageListCaches { - //调用状态检测函数 - hostManageListCaches[k].ConnStatus = StatusDetection(v.Ip) - hostManageListCaches[k].Id = id + for i := 0; i < len(hostManageListCaches); i++ { + go func(i int) { + //检测ip连通性 + hostManageListCaches[i].ConnStatus = StatusDetection(hostManageListCaches[i].Ip) + hostManageListCaches[i].Id = id + defer wg.Done() + }(i) } + wg.Wait() + + //状态检测 + //id = uuid.New().String() + //for k, v := range hostManageListCaches { + // //调用状态检测函数 + // hostManageListCaches[k].ConnStatus = StatusDetection(v.Ip) + // hostManageListCaches[k].Id = id + //} //存入数据库 _, err = db.Table("host_manage_list_cache").Insert(&hostManageListCaches) -- 2.26.0