Explorar o código

refactor: modify data collection frequency limit

HeWang hai 6 meses
pai
achega
2ba77e91a9

+ 6 - 4
aarch64/pjibot_guide/master/package/service/produce_window.go

@@ -37,9 +37,6 @@ func PrepareTimeWindowProducerQueue() {
 					Node:  commonConfig.RosNode,
 					Topic: topic,
 					Callback: func(data *std_msgs.UInt8) {
-						if !canCollect() {
-							return
-						}
 						subscribersTimeMutexes[i].Lock()
 						if time.Since(subscribersTimes[i]).Seconds() > triggerInterval {
 							subscribersMutexes[i].Lock()
@@ -49,6 +46,9 @@ func PrepareTimeWindowProducerQueue() {
 							for _, f := range masterConfig.RuleOfObstacleDetection {
 								faultLabel = f(data)
 								if faultLabel != "" {
+									if !canCollect() {
+										return
+									}
 									subscribersTimes[i] = time.Now()
 									c_log.GlobalLogger.Errorf("触发事件【%v】,开始采集。", faultLabel)
 									saveTimeWindow(faultLabel, faultHappenTime, lastTimeWindow)
@@ -145,7 +145,7 @@ func getTopicsOfNode(faultLabel string) (masterTopics []string, slaveTopics []st
 func canCollect() bool {
 	// 如果开启了采集频率限制,则云端判断采集数量是否超过限额
 	if commonConfig.CloudConfig.CollectLimit.Flag == 1 {
-		//c_log.GlobalLogger.Error("当前设备已开启数采频率限制,需判断采集数量是否达到限额。")
+		c_log.GlobalLogger.Error("当前设备已开启数采频率限制,需判断采集数量是否达到限额。")
 		responseString, err := commonUtil.HttpPostJsonWithHeaders(
 			commonConfig.CloudConfig.CollectLimit.Url,
 			map[string]string{"Authorization": "U9yKpD6kZZDDe4LFKK6myAxBUT1XRrDM"},
@@ -172,6 +172,8 @@ func canCollect() bool {
 			c_log.GlobalLogger.Info("采集数量已超过限额,当前周期内不再采集。", resp.Code)
 			return false
 		}
+	} else {
+		c_log.GlobalLogger.Error("当前设备未开启数采频率限制,无需判断采集数量是否达到限额。")
 	}
 
 	// 本地判断是否存在正在处理的数据