From 6f843b071a94e7f2e3bae4e2d95f5b425c5b3ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Mon, 1 Aug 2022 18:54:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A7=E8=A1=8CIP=E5=90=8D=E5=8D=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E4=BB=BB=E5=8A=A1=E6=97=B6=E9=98=B2=E6=AD=A2=E9=98=BB?= =?UTF-8?q?=E5=A1=9E/=E4=BC=98=E5=8C=96=E8=8A=82=E7=82=B9=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/node.go | 16 +++++++++++----- internal/nodes/upgrade_manager.go | 5 +++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/internal/nodes/node.go b/internal/nodes/node.go index 5518d4a..30c0c05 100644 --- a/internal/nodes/node.go +++ b/internal/nodes/node.go @@ -297,7 +297,12 @@ func (this *Node) loop() error { for _, task := range tasksResp.NodeTasks { switch task.Type { case "ipItemChanged": - iplibrary.IPListUpdateNotify <- true + // 防止阻塞 + select { + case iplibrary.IPListUpdateNotify <- true: + default: + + } // 修改为已同步 _, err = rpcClient.NodeTaskRPC().ReportNodeTaskDone(nodeCtx, &pb.ReportNodeTaskDoneRequest{ @@ -334,11 +339,12 @@ func (this *Node) loop() error { if err != nil { return err } - case "nodeVersionChanged": - goman.New(func() { - sharedUpgradeManager.Start() - }) + if !sharedUpgradeManager.IsInstalling() { + goman.New(func() { + sharedUpgradeManager.Start() + }) + } case "scriptsChanged": err = this.reloadCommonScripts() if err != nil { diff --git a/internal/nodes/upgrade_manager.go b/internal/nodes/upgrade_manager.go index f13443f..24e52e1 100644 --- a/internal/nodes/upgrade_manager.go +++ b/internal/nodes/upgrade_manager.go @@ -69,6 +69,11 @@ func (this *UpgradeManager) Start() { }) } +// IsInstalling 检查是否正在安装 +func (this *UpgradeManager) IsInstalling() bool { + return this.isInstalling +} + func (this *UpgradeManager) install() error { // 检查是否有已下载但未安装成功的 if len(this.lastFile) > 0 {