mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 06:40:25 +08:00
启动时判断是否处于空闲时间决定是否执行fstrim
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user