优化代码

This commit is contained in:
GoEdgeLab
2022-01-12 20:31:04 +08:00
parent 83d041b8bf
commit 938278725e
23 changed files with 243 additions and 110 deletions

View File

@@ -20,10 +20,13 @@ func init() {
SharedFreeHoursManager.Start()
})
})
events.On(events.EventQuit, func() {
SharedFreeHoursManager.Stop()
})
}
// FreeHoursManager 计算节点空闲时间
// 以便于我们在空闲时间执行高强度的任务,如清理缓存等
// 以便于我们在空闲时间执行高强度的任务,如清理缓存等
type FreeHoursManager struct {
dayTrafficMap map[int][24]uint64 // day => [ traffic bytes ]
lastBytes uint64
@@ -32,6 +35,7 @@ type FreeHoursManager struct {
count int
locker sync.Mutex
ticker *time.Ticker
}
func NewFreeHoursManager() *FreeHoursManager {
@@ -39,8 +43,8 @@ func NewFreeHoursManager() *FreeHoursManager {
}
func (this *FreeHoursManager) Start() {
var ticker = time.NewTicker(30 * time.Minute)
for range ticker.C {
this.ticker = time.NewTicker(30 * time.Minute)
for range this.ticker.C {
this.Update(atomic.LoadUint64(&teaconst.InTrafficBytes))
}
}
@@ -113,6 +117,12 @@ func (this *FreeHoursManager) IsFreeHour() bool {
return false
}
func (this *FreeHoursManager) Stop() {
if this.ticker != nil {
this.ticker.Stop()
}
}
// 对数组进行排序,并返回权重
func (this *FreeHoursManager) sortUintArrayWeights(arr [24]uint64) [24]uint64 {
var l = []map[string]interface{}{}