code: func (n *Manager) Run(tsets <-chan map[string][]*targetgroup.Group) {
  
  	for {
  		select {
  		case <-n.ctx.Done():
  			return
  		case ts := <-tsets:
  			n.reload(ts)
  		case <-n.more:
  		}
  		alerts := n.nextBatch()
  
  		if !n.sendAll(alerts...) {
  			n.metrics.dropped.Add(float64(len(alerts)))
  		}
  		// If the queue still has items left, kick off the next iteration.
  		if n.queueLen() > 0 {
  			n.setMore()
  		}
  	}
  }
docs: // Run dispatches notifications continuously.