mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	自动清理过期指标统计数据
This commit is contained in:
		@@ -6,12 +6,31 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/lists"
 | 
						"github.com/iwind/TeaGo/lists"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/logs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"strconv"
 | 
						"strconv"
 | 
				
			||||||
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type MetricStatDAO dbs.DAO
 | 
					type MetricStatDAO dbs.DAO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func init() {
 | 
				
			||||||
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
 | 
							// 清理数据任务
 | 
				
			||||||
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
 | 
							go func() {
 | 
				
			||||||
 | 
								for range ticker.C {
 | 
				
			||||||
 | 
									err := SharedMetricStatDAO.Clean(nil, 120) // 只保留120天
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										logs.Println("SharedMetricStatDAO: clean expired data failed: " + err.Error())
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}()
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewMetricStatDAO() *MetricStatDAO {
 | 
					func NewMetricStatDAO() *MetricStatDAO {
 | 
				
			||||||
	return dbs.NewDAO(&MetricStatDAO{
 | 
						return dbs.NewDAO(&MetricStatDAO{
 | 
				
			||||||
		DAOObject: dbs.DAOObject{
 | 
							DAOObject: dbs.DAOObject{
 | 
				
			||||||
@@ -47,15 +66,16 @@ func (this *MetricStatDAO) CreateStat(tx *dbs.Tx, hash string, clusterId int64,
 | 
				
			|||||||
	return this.Query(tx).
 | 
						return this.Query(tx).
 | 
				
			||||||
		Param("value", value).
 | 
							Param("value", value).
 | 
				
			||||||
		InsertOrUpdateQuickly(maps.Map{
 | 
							InsertOrUpdateQuickly(maps.Map{
 | 
				
			||||||
			"hash":      hash,
 | 
								"hash":       hash,
 | 
				
			||||||
			"clusterId": clusterId,
 | 
								"clusterId":  clusterId,
 | 
				
			||||||
			"nodeId":    nodeId,
 | 
								"nodeId":     nodeId,
 | 
				
			||||||
			"serverId":  serverId,
 | 
								"serverId":   serverId,
 | 
				
			||||||
			"itemId":    itemId,
 | 
								"itemId":     itemId,
 | 
				
			||||||
			"value":     value,
 | 
								"value":      value,
 | 
				
			||||||
			"time":      time,
 | 
								"time":       time,
 | 
				
			||||||
			"version":   version,
 | 
								"version":    version,
 | 
				
			||||||
			"keys":      keysString,
 | 
								"keys":       keysString,
 | 
				
			||||||
 | 
								"createdDay": timeutil.Format("Ymd"),
 | 
				
			||||||
		}, maps.Map{
 | 
							}, maps.Map{
 | 
				
			||||||
			"value": value,
 | 
								"value": value,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -322,3 +342,14 @@ func (this *MetricStatDAO) FindLatestItemStatsWithServerId(tx *dbs.Tx, serverId
 | 
				
			|||||||
	lists.Reverse(result)
 | 
						lists.Reverse(result)
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Clean 清理数据
 | 
				
			||||||
 | 
					func (this *MetricStatDAO) Clean(tx *dbs.Tx, days int64) error {
 | 
				
			||||||
 | 
						_, err := this.Query(tx).
 | 
				
			||||||
 | 
							Lt("createdDay", timeutil.FormatTime("Ymd", time.Now().Unix()-days*86400)).
 | 
				
			||||||
 | 
							Delete()
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,29 +2,31 @@ package models
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// MetricStat 指标统计数据
 | 
					// MetricStat 指标统计数据
 | 
				
			||||||
type MetricStat struct {
 | 
					type MetricStat struct {
 | 
				
			||||||
	Id        uint64  `field:"id"`        // ID
 | 
						Id         uint64  `field:"id"`         // ID
 | 
				
			||||||
	Hash      string  `field:"hash"`      // Hash值
 | 
						Hash       string  `field:"hash"`       // Hash值
 | 
				
			||||||
	ClusterId uint32  `field:"clusterId"` // 集群ID
 | 
						ClusterId  uint32  `field:"clusterId"`  // 集群ID
 | 
				
			||||||
	NodeId    uint32  `field:"nodeId"`    // 节点ID
 | 
						NodeId     uint32  `field:"nodeId"`     // 节点ID
 | 
				
			||||||
	ServerId  uint32  `field:"serverId"`  // 服务ID
 | 
						ServerId   uint32  `field:"serverId"`   // 服务ID
 | 
				
			||||||
	ItemId    uint64  `field:"itemId"`    // 指标
 | 
						ItemId     uint64  `field:"itemId"`     // 指标
 | 
				
			||||||
	Keys      string  `field:"keys"`      // 键值
 | 
						Keys       string  `field:"keys"`       // 键值
 | 
				
			||||||
	Value     float64 `field:"value"`     // 数值
 | 
						Value      float64 `field:"value"`      // 数值
 | 
				
			||||||
	Time      string  `field:"time"`      // 分钟值YYYYMMDDHHII
 | 
						Time       string  `field:"time"`       // 分钟值YYYYMMDDHHII
 | 
				
			||||||
	Version   uint32  `field:"version"`   // 版本号
 | 
						Version    uint32  `field:"version"`    // 版本号
 | 
				
			||||||
 | 
						CreatedDay string  `field:"createdDay"` // YYYYMMDD
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type MetricStatOperator struct {
 | 
					type MetricStatOperator struct {
 | 
				
			||||||
	Id        interface{} // ID
 | 
						Id         interface{} // ID
 | 
				
			||||||
	Hash      interface{} // Hash值
 | 
						Hash       interface{} // Hash值
 | 
				
			||||||
	ClusterId interface{} // 集群ID
 | 
						ClusterId  interface{} // 集群ID
 | 
				
			||||||
	NodeId    interface{} // 节点ID
 | 
						NodeId     interface{} // 节点ID
 | 
				
			||||||
	ServerId  interface{} // 服务ID
 | 
						ServerId   interface{} // 服务ID
 | 
				
			||||||
	ItemId    interface{} // 指标
 | 
						ItemId     interface{} // 指标
 | 
				
			||||||
	Keys      interface{} // 键值
 | 
						Keys       interface{} // 键值
 | 
				
			||||||
	Value     interface{} // 数值
 | 
						Value      interface{} // 数值
 | 
				
			||||||
	Time      interface{} // 分钟值YYYYMMDDHHII
 | 
						Time       interface{} // 分钟值YYYYMMDDHHII
 | 
				
			||||||
	Version   interface{} // 版本号
 | 
						Version    interface{} // 版本号
 | 
				
			||||||
 | 
						CreatedDay interface{} // YYYYMMDD
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func NewMetricStatOperator() *MetricStatOperator {
 | 
					func NewMetricStatOperator() *MetricStatOperator {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type NSRecordHourlyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedNSRecordHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedNSRecordHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/logs"
 | 
						"github.com/iwind/TeaGo/logs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"regexp"
 | 
						"regexp"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
@@ -18,7 +19,7 @@ type ServerDailyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedServerDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedServerDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type NodeClusterTrafficDailyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedNodeClusterTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedNodeClusterTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type NodeTrafficDailyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedNodeTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedNodeTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type NodeTrafficHourlyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedNodeTrafficHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedNodeTrafficHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,6 +7,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -16,7 +17,7 @@ type ServerDomainHourlyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedServerDomainHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedServerDomainHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type ServerHTTPFirewallDailyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedServerHTTPFirewallDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedServerHTTPFirewallDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type ServerHTTPFirewallHourlyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedServerHTTPFirewallHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedServerHTTPFirewallHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type TrafficDailyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedTrafficDailyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"github.com/iwind/TeaGo/Tea"
 | 
						"github.com/iwind/TeaGo/Tea"
 | 
				
			||||||
	"github.com/iwind/TeaGo/dbs"
 | 
						"github.com/iwind/TeaGo/dbs"
 | 
				
			||||||
	"github.com/iwind/TeaGo/maps"
 | 
						"github.com/iwind/TeaGo/maps"
 | 
				
			||||||
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
	timeutil "github.com/iwind/TeaGo/utils/time"
 | 
						timeutil "github.com/iwind/TeaGo/utils/time"
 | 
				
			||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@@ -17,7 +18,7 @@ type TrafficHourlyStatDAO dbs.DAO
 | 
				
			|||||||
func init() {
 | 
					func init() {
 | 
				
			||||||
	dbs.OnReadyDone(func() {
 | 
						dbs.OnReadyDone(func() {
 | 
				
			||||||
		// 清理数据任务
 | 
							// 清理数据任务
 | 
				
			||||||
		var ticker = time.NewTicker(24 * time.Hour)
 | 
							var ticker = time.NewTicker(time.Duration(rands.Int(24, 48)) * time.Hour)
 | 
				
			||||||
		go func() {
 | 
							go func() {
 | 
				
			||||||
			for range ticker.C {
 | 
								for range ticker.C {
 | 
				
			||||||
				err := SharedTrafficHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
									err := SharedTrafficHourlyStatDAO.Clean(nil, 60) // 只保留60天
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user