mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-12 22:40:25 +08:00
启动时判断是否处于空闲时间决定是否执行fstrim
This commit is contained in:
@@ -24,15 +24,17 @@ func NewTrimDisksTask() *TrimDisksTask {
|
|||||||
// Start the task
|
// Start the task
|
||||||
func (this *TrimDisksTask) Start() {
|
func (this *TrimDisksTask) Start() {
|
||||||
// execute once
|
// execute once
|
||||||
|
if idles.IsMinHour() {
|
||||||
err := this.loop()
|
err := this.loop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
|
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var ticker = time.NewTicker(2 * 24 * time.Hour) // every 2 days
|
var ticker = time.NewTicker(2 * 24 * time.Hour) // every 2 days
|
||||||
idles.RunTicker(ticker, func() {
|
idles.RunTicker(ticker, func() {
|
||||||
// run the task
|
// run the task
|
||||||
err = this.loop()
|
err := this.loop()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
|
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"github.com/shirou/gopsutil/v3/load"
|
"github.com/shirou/gopsutil/v3/load"
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
|
"slices"
|
||||||
"sort"
|
"sort"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
@@ -124,6 +125,11 @@ func RunTicker(ticker *time.Ticker, f func()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsMinHour() bool {
|
||||||
|
var minLoadHours = sharedMinLoadHours // copy
|
||||||
|
return len(minLoadHours) > 0 && slices.Contains(minLoadHours, time.Now().Hour())
|
||||||
|
}
|
||||||
|
|
||||||
func calculateMinLoadHours() {
|
func calculateMinLoadHours() {
|
||||||
var allLoads = []*HourlyLoad{}
|
var allLoads = []*HourlyLoad{}
|
||||||
for _, v := range hourlyLoadMap {
|
for _, v := range hourlyLoadMap {
|
||||||
|
|||||||
@@ -44,3 +44,7 @@ func TestRunTicker(t *testing.T) {
|
|||||||
t.Log(timeutil.Format("H:i:s"), "run once")
|
t.Log(timeutil.Format("H:i:s"), "run once")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsMinHour(t *testing.T) {
|
||||||
|
t.Log(idles.IsMinHour())
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user