panlei
2019-11-07 0e441dc5137776776d367f4075f7a2f62ae03628
ruleserver/timeTicker.go
@@ -34,35 +34,35 @@
func TimeTicker() {
   ticker := time.NewTicker(1 * time.Second)
   go func(ticker *time.Ticker) {
      defer ticker.Stop()
      for {
         select {
         case <-ticker.C:
            logger.Info("定时器执行单元", time.Now().Unix())
            fmt.Println("定时器执行单元", time.Now().Unix())
            // 每秒钟计数器池子里所有的计数器元素都减一,减到0的是该报警的
            rw.Lock()
            for k, timeEle := range TimeEleList {
               if timeEle.N > 0 {
                  timeEle.N = timeEle.N - 1
                  logger.Error("-------------------------------------打印定时器计数元素当前值-----------------------------------------:", timeEle.N)
               }
               if timeEle.GroupId != "" && timeEle.N == 0 {
                  // 说明是联动任务的时间窗口 到点儿了该销毁了,再来了再创建
                  delete(TimeEleList, k)
               }
   //go func(ticker *time.Ticker) {
   defer ticker.Stop()
   for {
      select {
      case <-ticker.C:
         logger.Info("定时器执行单元", time.Now().Unix())
         fmt.Println("定时器执行单元", time.Now().Unix())
         // 每秒钟计数器池子里所有的计数器元素都减一,减到0的是该报警的
         rw.Lock()
         for k, timeEle := range TimeEleList {
            if timeEle.N > 0 {
               timeEle.N = timeEle.N - 1
               logger.Error("-------------------------------------打印定时器计数元素当前值-----------------------------------------:", timeEle.N)
            }
            rw.Unlock()
         case stop := <-stopChan:
            if stop {
               logger.Info("定时器结束")
               return
               //os.Exit(0)
            if timeEle.GroupId != "" && timeEle.N == 0 {
               // 说明是联动任务的时间窗口 到点儿了该销毁了,再来了再创建
               delete(TimeEleList, k)
            }
         }
         rw.Unlock()
      case stop := <-stopChan:
         if stop {
            logger.Info("定时器结束")
            return
            //os.Exit(0)
         }
      }
   }(ticker)
   }
   //}(ticker)
}
func StopTimeTicker() {
   stopChan <- true