task.go 740 B

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