// 定时器模块 // 秒寻科技 // zt 2024-10-27 package timer import ( "context" "fmt" "ipsomc/module/bparam/bparamapi" "ipsomc/public" "sync/atomic" "time" ) var bparamApi bparamapi.BparamApi var gTimerCounter int32 = 0 //定时器触发计数器 // 创建一个定时器 func CreateTimer(ctx context.Context) { ticker := time.NewTicker(5 * time.Minute) //五分钟定时器 defer ticker.Stop() //获得系统工作模式 sysWorkMode := public.PublicSysWorkModeGet() // 使用无限循环等待Ticker的触发 for { select { case <-ctx.Done(): return // 收到退出信号时终止 case t := <-ticker.C: if sysWorkMode == 0 { fmt.Println("定时器触发时间:", t.Format("2006-01-02 15:16:17")) } //计数器加1 newVal := atomic.AddInt32(&gTimerCounter, 1) //每30分钟更新一次数据库 if newVal >= 6 { atomic.StoreInt32(&gTimerCounter, 0) //计数器归零 go bparamApi.UpdateBtsStatusByHeartMap(public.Gpub_mapHeart) //修改基站状态 } } } }