package timer import ( "smartIntersection_edge/service" "smartIntersection_edge/util/logger" "time" ) func IsOnline() { t := time.NewTicker(1 * time.Minute) //每分钟 for { select { case <-t.C: for _, device := range service.Devices { //符合条件 if time.Now().Add(-2*time.Minute).After(device.LastTime) || device.LastTime.IsZero() { topic := service.MqttService.GetTopic(device.Info.Sn, service.TopicChanStatus) err := service.MqttService.Publish(topic, "0") delete(service.Devices, device.Info.Sn) if err != nil { continue } logger.Logger.Infof("%v 设备离线了", device.Info.ScreensName) } } } } }