task.go 677 B

12345678910111213141516171819202122232425262728
  1. package timer
  2. import (
  3. "smartIntersection_edge/service"
  4. "smartIntersection_edge/util/logger"
  5. "time"
  6. )
  7. func IsOnline() {
  8. t := time.NewTicker(1 * time.Minute) //每分钟
  9. for {
  10. select {
  11. case <-t.C:
  12. for _, device := range service.Devices {
  13. //符合条件
  14. if time.Now().Add(-2*time.Minute).After(device.LastTime) || device.LastTime.IsZero() {
  15. topic := service.MqttService.GetTopic(device.Info.Sn, service.TopicChanStatus)
  16. err := service.MqttService.Publish(topic, "0")
  17. delete(service.Devices, device.Info.Sn)
  18. if err != nil {
  19. continue
  20. }
  21. logger.Logger.Infof("%v 设备离线了", device.Info.ScreensName)
  22. }
  23. }
  24. }
  25. }
  26. }