Bläddra i källkod

优化心跳记录

maxiaoshan 2 år sedan
förälder
incheckning
a1b911016a
2 ändrade filer med 27 tillägg och 20 borttagningar
  1. 24 20
      src/spider/handler.go
  2. 3 0
      src/spider/spider.go

+ 24 - 20
src/spider/handler.go

@@ -1385,29 +1385,33 @@ func SpiderInfoSend() {
 
 //保存心跳信息
 func SaveHeartInfo() {
-	time.Sleep(30 * time.Second)
+	time.Sleep(20 * time.Minute)
 	num := 0
 	SpiderHeart.Range(func(key, value interface{}) bool {
 		code := key.(string)
-		heart, heartOk := value.(*Heart)
-		_, spiderOk := LoopListPath.Load(code)
-		if heartOk && spiderOk {
-			num++
-			update := []map[string]interface{}{}
-			update = append(update, map[string]interface{}{"code": code})
-			update = append(update, map[string]interface{}{"$set": map[string]interface{}{
-				"site":          heart.Site,
-				"channel":       heart.Channel,
-				"list":          heart.ListHeart,
-				"findlist":      heart.FindListHeart,
-				"detail":        heart.DetailHeart,
-				"detailexecute": heart.DetailExecuteHeart,
-				"modifyuser":    heart.ModifyUser,
-				"event":         util.Config.Uploadevent,
-				"updatetime":    time.Now().Unix(),
-				"del":           false,
-			}})
-			UpdataHeartCache <- update
+		sp, spiderOk := LoopListPath.Load(code)
+		if spiderOk && sp != nil {
+			heart, heartOk := value.(*Heart)
+			if heartOk {
+				num++
+				update := []map[string]interface{}{}
+				update = append(update, map[string]interface{}{"code": code})
+				update = append(update, map[string]interface{}{"$set": map[string]interface{}{
+					"site":          heart.Site,
+					"channel":       heart.Channel,
+					"list":          heart.ListHeart,
+					"findlist":      heart.FindListHeart,
+					"detail":        heart.DetailHeart,
+					"detailexecute": heart.DetailExecuteHeart,
+					"modifyuser":    heart.ModifyUser,
+					"event":         util.Config.Uploadevent,
+					"updatetime":    time.Now().Unix(),
+					"del":           false,
+				}})
+				UpdataHeartCache <- update
+			}
+		} else {
+			SpiderHeart.Delete(key)
 		}
 		return true
 	})

+ 3 - 0
src/spider/spider.go

@@ -112,6 +112,8 @@ type DelaySite struct {
 
 //心跳
 func UpdateHeart(site, channel, code, user, t string) {
+	//sp, spiderOk := LoopListPath.Load(code)
+	//if spiderOk && sp != nil {
 	if htmp, ok := SpiderHeart.Load(code); ok {
 		if heart, ok := htmp.(*Heart); ok {
 			if t == "list" {
@@ -141,6 +143,7 @@ func UpdateHeart(site, channel, code, user, t string) {
 		}
 		SpiderHeart.Store(code, heart)
 	}
+	//}
 }
 
 //任务