Mercurial > code > home > repos > gcalendarwatch
diff calsync/sync_event.go @ 75:5354739c9b0a
refactor jitter code
author | drewp@bigasterisk.com |
---|---|
date | Fri, 06 Sep 2024 17:52:37 -0700 |
parents | 19e3def953e1 |
children | 470eacf452cb |
line wrap: on
line diff
--- a/calsync/sync_event.go Fri Sep 06 17:51:15 2024 -0700 +++ b/calsync/sync_event.go Fri Sep 06 17:52:37 2024 -0700 @@ -65,10 +65,8 @@ return &calEventsReader{mc, gc, router, cal, t1, t2, ""} } -func (r *calEventsReader) watchForUpdates() { - jitteredStartup := time.Duration(rand.Int()%30) * time.Second - log.Println(M.Prefix(r.cal), "watchForEvents starting in", jitteredStartup) - time.Sleep(jitteredStartup) +func (r *calEventsReader) watchForUpdates() error { + r.watchForUpdatesJitteredStartup() err := r.updateInitialRange() if err != nil { @@ -87,12 +85,18 @@ go r.renewWatchEventsForever(watchLifetime, syncFunc) } +func (r *calEventsReader) watchForUpdatesJitteredStartup() { + jitteredStartup := time.Duration(rand.Int()%30) * time.Second + log.Println(M.Prefix(r.cal), "watchForEvents starting in", jitteredStartup) + time.Sleep(jitteredStartup) +} + func (r *calEventsReader) renewWatchEventsForever(lifetime time.Duration, syncFunc notificationrouter.SyncFunc) { log.Println(M.Prefix(r.cal), "renewWatchEventsForever") for { watchId := notificationrouter.NewWatchId() - jitterScale := rand.Float64()*1 + 0.5 + jitterScale := 0.5 + 1.0*rand.Float64() jitteredLifetime := time.Duration(lifetime.Seconds()*jitterScale) * time.Second r.router.AddHandler(watchId, syncFunc, jitteredLifetime+grace)