启动时判断是否处于空闲时间决定是否执行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 // Start the task
func (this *TrimDisksTask) Start() { func (this *TrimDisksTask) Start() {
// execute once // execute once
err := this.loop() if idles.IsMinHour() {
if err != nil { err := this.loop()
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error()) if err != nil {
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())
} }

View File

@@ -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 {

View File

@@ -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())
}