1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- // 定时器模块
- // 秒寻科技
- // 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) //修改基站状态
- }
- }
- }
- }
|