瀏覽代碼

Merge branch 'lq' of terry/ipole_edge_server into master

lq 3 月之前
父節點
當前提交
39ce865e8f
共有 1 個文件被更改,包括 10 次插入2 次删除
  1. 10 2
      cloud/ipolesvr/datastat.go

+ 10 - 2
cloud/ipolesvr/datastat.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"runtime/debug"
+	"sync/atomic"
 	"time"
 
 	"github.com/sirupsen/logrus"
@@ -11,8 +12,9 @@ import (
 )
 
 var (
-	StatYestodayStartMinute   = 30
-	StatCurrentdayStartMinute = 10
+	StatYestodayStartMinute         = 30
+	StatCurrentdayStartMinute       = 10
+	isRunning                 int32 = 0
 )
 
 // CalcLightingRate 临时使用
@@ -49,6 +51,12 @@ func GetNext15minite(t time.Time) time.Time {
 }
 
 func StatData(args ...interface{}) interface{} {
+	if !atomic.CompareAndSwapInt32(&isRunning, 0, 1) {
+		logrus.Info("StatData 已有实例在运行,直接退出")
+		return nil
+	}
+	defer atomic.StoreInt32(&isRunning, 0)
+
 	defer func() {
 		if err := recover(); err != nil {
 			logrus.Error("StatData发生异常:", err)