diff --git a/client/internal/spacesyncer/space_syncer.go b/client/internal/spacesyncer/space_syncer.go index 252ee3b..e7affe0 100644 --- a/client/internal/spacesyncer/space_syncer.go +++ b/client/internal/spacesyncer/space_syncer.go @@ -49,11 +49,6 @@ func (s *SpaceSyncer) Start() *async.UnboundChannel[SpaceSyncerEvent] { ch := async.NewUnboundChannel[SpaceSyncerEvent]() - if !s.cluster.IsMaster() { - log.Infof("not master, skip start space syncer") - return ch - } - allTask, err := db.DoTx01(s.db, s.db.SpaceSyncTask().GetAll) if err != nil { log.Warnf("load task from db: %v", err) diff --git a/client/internal/spacesyncer/trigger.go b/client/internal/spacesyncer/trigger.go index 7aab378..f257413 100644 --- a/client/internal/spacesyncer/trigger.go +++ b/client/internal/spacesyncer/trigger.go @@ -11,6 +11,12 @@ import ( func triggerOnce(syncer *SpaceSyncer, task *task) { go func() { log := logger.WithField("Mod", logMod) + + if !syncer.cluster.IsMaster() { + log.Infof("not cluster master, skip") + return + } + execute(syncer, task) syncer.lock.Lock() @@ -42,6 +48,11 @@ func triggerInterval(syncer *SpaceSyncer, task *task, trigger *jcstypes.SpaceSyn for { select { case <-ticker.C: + if !syncer.cluster.IsMaster() { + log.Infof("not cluster master, skip") + continue + } + execute(syncer, task) case <-task.Context.Done(): break loop @@ -83,6 +94,11 @@ func triggerAt(syncer *SpaceSyncer, task *task, trigger *jcstypes.SpaceSyncTrigg select { case <-time.After(at.Sub(nowTime)): + if !syncer.cluster.IsMaster() { + log.Infof("not cluster master, skip") + continue + } + execute(syncer, task) case <-task.Context.Done():