You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by GitBox <gi...@apache.org> on 2020/11/28 13:56:40 UTC

[GitHub] [servicecomb-service-center] lilai23 commented on a change in pull request #757: Incremental synchronization of sc: sync between sc syncers

lilai23 commented on a change in pull request #757:
URL: https://github.com/apache/servicecomb-service-center/pull/757#discussion_r532042947



##########
File path: syncer/server/handler.go
##########
@@ -45,9 +50,78 @@ func (s *Server) tickHandler() {
 	s.servicecenter.FlushData()
 
 	// sends a UserEvent on Serf, the event will be broadcast between members
-	err := s.serf.UserEvent(EventDiscovered, util.StringToBytesWithNoCopy(s.conf.Cluster))
-	if err != nil {
-		log.Errorf(err, "Syncer send user event failed")
+	s.httpserver.Mux.Lock()
+	defer s.httpserver.Mux.Unlock()
+	if s.httpserver.Triggered {
+		err := s.serf.UserEvent(EventNotifyFullPulled, util.StringToBytesWithNoCopy(""))
+		s.httpserver.Triggered = false
+		if err != nil {
+			log.Errorf(err, "Syncer send notifyFullPulled user event failed")
+		}
+		err = alarm.Clear(alarm.IDIncrementPullError)
+		if err != nil {
+			log.Error("", err)
+		}
+	} else {
+		err := s.serf.UserEvent(EventIncrementPulled, util.StringToBytesWithNoCopy(s.conf.Cluster))
+		if err != nil {
+			log.Errorf(err, "Syncer send incrementPulled user event failed")
+		}
+	}
+}
+
+func (s *Server) DataRemoveTickHandler() chan bool {
+	ticker := time.NewTicker(time.Second * 30)
+	stopChan := make(chan bool)
+	go func(trick *time.Ticker) {
+		//defer ticker.Stop()
+		for {
+			select {
+			case <-ticker.C:
+				s.eventQueueDataRemoveTickHandler()
+				log.Infof("size of records map = %d, size of events slice = %d", len(s.revisionMap), len(s.eventQueue))
+			case stop := <-stopChan:
+				if stop {
+					fmt.Print("ready stop")

Review comment:
       已修改




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org