Skip to content

Commit b1e1c3e

Browse files
committed
启动时判断是否处于空闲时间决定是否执行fstrim
1 parent c8f440e commit b1e1c3e

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

internal/nodes/task_trim_disks.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,17 @@ func NewTrimDisksTask() *TrimDisksTask {
2424
// Start the task
2525
func (this *TrimDisksTask) Start() {
2626
// execute once
27-
err := this.loop()
28-
if err != nil {
29-
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
27+
if idles.IsMinHour() {
28+
err := this.loop()
29+
if err != nil {
30+
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
31+
}
3032
}
3133

3234
var ticker = time.NewTicker(2 * 24 * time.Hour) // every 2 days
3335
idles.RunTicker(ticker, func() {
3436
// run the task
35-
err = this.loop()
37+
err := this.loop()
3638
if err != nil {
3739
remotelogs.Warn("TRIM_DISKS", "trim disks failed: "+err.Error())
3840
}

internal/utils/idles/run.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/shirou/gopsutil/v3/load"
1212
"math"
1313
"os"
14+
"slices"
1415
"sort"
1516
"time"
1617
)
@@ -124,6 +125,11 @@ func RunTicker(ticker *time.Ticker, f func()) {
124125
}
125126
}
126127

128+
func IsMinHour() bool {
129+
var minLoadHours = sharedMinLoadHours // copy
130+
return len(minLoadHours) > 0 && slices.Contains(minLoadHours, time.Now().Hour())
131+
}
132+
127133
func calculateMinLoadHours() {
128134
var allLoads = []*HourlyLoad{}
129135
for _, v := range hourlyLoadMap {

internal/utils/idles/run_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,7 @@ func TestRunTicker(t *testing.T) {
4444
t.Log(timeutil.Format("H:i:s"), "run once")
4545
})
4646
}
47+
48+
func TestIsMinHour(t *testing.T) {
49+
t.Log(idles.IsMinHour())
50+
}

0 commit comments

Comments
 (0)