123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // 定时器模块
- // 秒寻科技
- // 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.PublicGetSysWorkMode()
- // 使用无限循环等待Ticker的触发
- for {
- select {
- case <-ctx.Done():
- return // 收到退出信号时终止
- case t := <-ticker.C:
- if sysWorkMode == 0 {
- fmt.Println("定时器触发时间:", t.Format("2006-01-02 15:16:17"))
- }
- newVal := atomic.AddInt32(&gTimerCounter, 1)
- //每15分钟维护一次心跳map(删除心跳map中的数据)
- if newVal%3 == 0 {
- public.PublicDeleteAllItem()
- }
- //每两小时更新一次数据库
- if newVal >= 24 {
- atomic.StoreInt32(&gTimerCounter, 0)
- go bparamApi.UpdateBtsStatus(public.Gpub_mapHeart) //修改基站状态
- }
- }
- }
- }
|