code: func updateAnalytics(interval time.Duration) {
  	t := time.NewTicker(time.Hour)
  	select {
  	case now := <-t.C:
  		updateAnalyticsTick(now)
  		updateAnalytics(interval)
  	}
  }
docs: // updateAnalytics recursively calls itself to continue running.