cache_monitor_queue.go 825 B

1234567891011121314151617181920212223242526272829
  1. package service
  2. import (
  3. "cicv-data-closedloop/common/util"
  4. "sync"
  5. )
  6. var (
  7. MonitorQueue = make([]MonitorInfo, 0, QueueLength)
  8. QueueLength = 120
  9. mu sync.Mutex // 用于保护MonitorQueue的互斥锁
  10. )
  11. type MonitorInfo struct {
  12. Time string
  13. }
  14. // CacheMonitorQueue 向MonitorQueue中添加一个新的MonitorInfo实例,如果队列已满,则替换最旧的元素
  15. func CacheMonitorQueue() {
  16. mu.Lock()
  17. defer mu.Unlock()
  18. // 创建新的MonitorInfo实例,Time字段为当前时间的字符串表示
  19. // 如果队列长度已经达到上限,移除最旧的元素
  20. if len(MonitorQueue) >= QueueLength {
  21. MonitorQueue = MonitorQueue[1:] // 移除第一个元素
  22. }
  23. // 将新的MonitorInfo实例添加到队列的末尾
  24. MonitorQueue = append(MonitorQueue, MonitorInfo{Time: util.GetNowTimeCustom()})
  25. }