mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 16:00:25 +08:00 
			
		
		
		
	执行IP名单更新任务时防止阻塞/优化节点升级代码
This commit is contained in:
		@@ -297,7 +297,12 @@ func (this *Node) loop() error {
 | 
				
			|||||||
	for _, task := range tasksResp.NodeTasks {
 | 
						for _, task := range tasksResp.NodeTasks {
 | 
				
			||||||
		switch task.Type {
 | 
							switch task.Type {
 | 
				
			||||||
		case "ipItemChanged":
 | 
							case "ipItemChanged":
 | 
				
			||||||
			iplibrary.IPListUpdateNotify <- true
 | 
								// 防止阻塞
 | 
				
			||||||
 | 
								select {
 | 
				
			||||||
 | 
								case iplibrary.IPListUpdateNotify <- true:
 | 
				
			||||||
 | 
								default:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// 修改为已同步
 | 
								// 修改为已同步
 | 
				
			||||||
			_, err = rpcClient.NodeTaskRPC().ReportNodeTaskDone(nodeCtx, &pb.ReportNodeTaskDoneRequest{
 | 
								_, err = rpcClient.NodeTaskRPC().ReportNodeTaskDone(nodeCtx, &pb.ReportNodeTaskDoneRequest{
 | 
				
			||||||
@@ -334,11 +339,12 @@ func (this *Node) loop() error {
 | 
				
			|||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					 | 
				
			||||||
		case "nodeVersionChanged":
 | 
							case "nodeVersionChanged":
 | 
				
			||||||
			goman.New(func() {
 | 
								if !sharedUpgradeManager.IsInstalling() {
 | 
				
			||||||
				sharedUpgradeManager.Start()
 | 
									goman.New(func() {
 | 
				
			||||||
			})
 | 
										sharedUpgradeManager.Start()
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		case "scriptsChanged":
 | 
							case "scriptsChanged":
 | 
				
			||||||
			err = this.reloadCommonScripts()
 | 
								err = this.reloadCommonScripts()
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -69,6 +69,11 @@ func (this *UpgradeManager) Start() {
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// IsInstalling 检查是否正在安装
 | 
				
			||||||
 | 
					func (this *UpgradeManager) IsInstalling() bool {
 | 
				
			||||||
 | 
						return this.isInstalling
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *UpgradeManager) install() error {
 | 
					func (this *UpgradeManager) install() error {
 | 
				
			||||||
	// 检查是否有已下载但未安装成功的
 | 
						// 检查是否有已下载但未安装成功的
 | 
				
			||||||
	if len(this.lastFile) > 0 {
 | 
						if len(this.lastFile) > 0 {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user