启动时判断是否处于空闲时间决定是否执行fstrim

This commit is contained in:
GoEdgeLab
2024-04-21 23:04:51 +08:00
parent 4552099e0e
commit 498b4556e2
3 changed files with 16 additions and 4 deletions

View File

@@ -24,15 +24,17 @@ func NewTrimDisksTask() *TrimDisksTask {
// Start the task
func (this *TrimDisksTask) Start() {
// execute once
err := this.loop()
if err != nil {
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
if idles.IsMinHour() {
err := this.loop()
if err != nil {
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
}
}
var ticker = time.NewTicker(2 * 24 * time.Hour) // every 2 days
idles.RunTicker(ticker, func() {
// run the task
err = this.loop()
err := this.loop()
if err != nil {
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
}

View File

@@ -11,6 +11,7 @@ import (
"github.com/shirou/gopsutil/v3/load"
"math"
"os"
"slices"
"sort"
"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() {
var allLoads = []*HourlyLoad{}
for _, v := range hourlyLoadMap {

View File

@@ -44,3 +44,7 @@ func TestRunTicker(t *testing.T) {
t.Log(timeutil.Format("H:i:s"), "run once")
})
}
func TestIsMinHour(t *testing.T) {
t.Log(idles.IsMinHour())
}