diff --git a/internal/tasks/health_check_cluster_task.go b/internal/tasks/health_check_cluster_task.go index f1128b22..a65a5a46 100644 --- a/internal/tasks/health_check_cluster_task.go +++ b/internal/tasks/health_check_cluster_task.go @@ -64,11 +64,11 @@ func (this *HealthCheckClusterTask) Run() { if this.config.Interval == nil { return } - duration := this.config.Interval.Duration() + var duration = this.config.Interval.Duration() if duration <= 0 { return } - ticker := utils.NewTicker(duration) + var ticker = utils.NewTicker(duration) goman.New(func() { for ticker.Wait() { err := this.Loop() diff --git a/internal/tasks/health_check_executor.go b/internal/tasks/health_check_executor.go index fafae227..b542f77d 100644 --- a/internal/tasks/health_check_executor.go +++ b/internal/tasks/health_check_executor.go @@ -52,10 +52,16 @@ func (this *HealthCheckExecutor) Run() ([]*HealthCheckResult, error) { } var results = []*HealthCheckResult{} + + // 查询集群下的节点 nodes, err := models.NewNodeDAO().FindAllEnabledNodesWithClusterId(nil, this.clusterId, false) if err != nil { return nil, err } + if len(nodes) == 0 { + return results, nil + } + for _, node := range nodes { if !node.IsOn { continue @@ -115,7 +121,7 @@ func (this *HealthCheckExecutor) Run() ([]*HealthCheckResult, error) { var concurrent = 128 - wg := sync.WaitGroup{} + var wg = sync.WaitGroup{} wg.Add(countResults) for i := 0; i < concurrent; i++ { go func() { diff --git a/internal/tasks/health_check_task.go b/internal/tasks/health_check_task.go index 58a2ff21..9022f610 100644 --- a/internal/tasks/health_check_task.go +++ b/internal/tasks/health_check_task.go @@ -70,7 +70,16 @@ func (this *HealthCheckTask) Loop() error { // 启动新的或更新老的 for _, cluster := range clusters { - clusterId := int64(cluster.Id) + var clusterId = int64(cluster.Id) + + // 检查当前集群上是否有服务,如果尚没有部署服务,则直接跳过 + countServers, err := models.SharedServerDAO.CountAllEnabledServersWithNodeClusterId(nil, clusterId) + if err != nil { + return err + } + if countServers == 0 { + continue + } var config = &serverconfigs.HealthCheckConfig{} if len(cluster.HealthCheck) > 0 {