|
@@ -37,6 +37,9 @@ func PrepareTimeWindowProducerQueue() {
|
|
Node: commonConfig.RosNode,
|
|
Node: commonConfig.RosNode,
|
|
Topic: topic,
|
|
Topic: topic,
|
|
Callback: func(data *std_msgs.UInt8) {
|
|
Callback: func(data *std_msgs.UInt8) {
|
|
|
|
+ if !canCollect() {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
subscribersTimeMutexes[i].Lock()
|
|
subscribersTimeMutexes[i].Lock()
|
|
if time.Since(subscribersTimes[i]).Seconds() > triggerInterval {
|
|
if time.Since(subscribersTimes[i]).Seconds() > triggerInterval {
|
|
subscribersMutexes[i].Lock()
|
|
subscribersMutexes[i].Lock()
|
|
@@ -47,16 +50,9 @@ func PrepareTimeWindowProducerQueue() {
|
|
faultLabel = f(data)
|
|
faultLabel = f(data)
|
|
if faultLabel != "" {
|
|
if faultLabel != "" {
|
|
subscribersTimes[i] = time.Now()
|
|
subscribersTimes[i] = time.Now()
|
|
- if canCollect() {
|
|
|
|
- c_log.GlobalLogger.Errorf("触发事件【%v】,开始采集。", faultLabel)
|
|
|
|
- saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
|
|
|
|
- break
|
|
|
|
- } else {
|
|
|
|
- if time.Since(logTime).Seconds() > logInterval {
|
|
|
|
- logTime = time.Now()
|
|
|
|
- c_log.GlobalLogger.Errorf("触发事件【%v】,但当前周期内采集数量已超限额,不再采集。", faultLabel)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ c_log.GlobalLogger.Errorf("触发事件【%v】,开始采集。", faultLabel)
|
|
|
|
+ saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
|
|
|
|
+ break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
subscribersMutexes[i].Unlock()
|
|
subscribersMutexes[i].Unlock()
|
|
@@ -173,10 +169,7 @@ func canCollect() bool {
|
|
c_log.GlobalLogger.Info("采集数量已超过限额,当前周期内不再采集。", resp.Code)
|
|
c_log.GlobalLogger.Info("采集数量已超过限额,当前周期内不再采集。", resp.Code)
|
|
return false
|
|
return false
|
|
}
|
|
}
|
|
- if len(entity.TimeWindowConsumerQueue) > 0 {
|
|
|
|
- c_log.GlobalLogger.Info("存在正在处理的窗口,当前周期内不再采集。", resp.Code)
|
|
|
|
- return false
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
c_log.GlobalLogger.Info("允许采集。")
|
|
c_log.GlobalLogger.Info("允许采集。")
|
|
return true
|
|
return true
|
|
}
|
|
}
|