|
@@ -0,0 +1,29 @@
|
|
|
+package service
|
|
|
+
|
|
|
+import (
|
|
|
+ "cicv-data-closedloop/common/util"
|
|
|
+ "sync"
|
|
|
+)
|
|
|
+
|
|
|
+var (
|
|
|
+ MonitorQueue = make([]MonitorInfo, 0, QueueLength)
|
|
|
+ QueueLength = 120
|
|
|
+ mu sync.Mutex // 用于保护MonitorQueue的互斥锁
|
|
|
+)
|
|
|
+
|
|
|
+type MonitorInfo struct {
|
|
|
+ Time string
|
|
|
+}
|
|
|
+
|
|
|
+// CacheMonitorQueue 向MonitorQueue中添加一个新的MonitorInfo实例,如果队列已满,则替换最旧的元素
|
|
|
+func CacheMonitorQueue() {
|
|
|
+ mu.Lock()
|
|
|
+ defer mu.Unlock()
|
|
|
+ // 创建新的MonitorInfo实例,Time字段为当前时间的字符串表示
|
|
|
+ // 如果队列长度已经达到上限,移除最旧的元素
|
|
|
+ if len(MonitorQueue) >= QueueLength {
|
|
|
+ MonitorQueue = MonitorQueue[1:] // 移除第一个元素
|
|
|
+ }
|
|
|
+ // 将新的MonitorInfo实例添加到队列的末尾
|
|
|
+ MonitorQueue = append(MonitorQueue, MonitorInfo{Time: util.GetNowTimeCustom()})
|
|
|
+}
|