code: func Cron() {
  	now := time.Now()
  	unn := now.UnixNano()
  	Manager.timers.Range(func(idInterface, tInterface interface{}) bool {
  		t := tInterface.(*Timer)
  		id := idInterface.(int64)
  		// prevent ChClosingTimer exceed
  		if t.counter == 0 {
  			if len(Manager.ChClosingTimer) < timerBacklog {
  				t.Stop()
  			}
  			return true
  		}
  
  		// condition timer
  		if t.condition != nil {
  			if t.condition.Check(now) {
  				pexec(id, t.fn)
  			}
  			return true
  		}
  
  		// execute job
  		if t.createAt+t.elapse <= unn {
  			pexec(id, t.fn)
  			t.elapse += int64(t.interval)
  
  			// update timer counter
  			if t.counter != LoopForever && t.counter > 0 {
  				t.counter--
  			}
  		}
  		return true
  	})
  }
docs: // Cron executes scheduled tasks
  // TODO: if closing Timers'count in single cron call more than timerBacklog will case problem.