MCPcopy Create free account
hub / github.com/GoEdgeLab/EdgeNode / Run

Function Run

internal/utils/idles/run.go:83–120  ·  view source on GitHub ↗
(f func())

Source from the content-addressed store, hash-verified

81}
82
83func Run(f func()) {
84 defer f()
85
86 var minLoadHours = sharedMinLoadHours // copy
87
88 if len(minLoadHours) == 0 {
89 fsutils.WaitLoad(15, 8, time.Hour)
90 return
91 }
92
93 var hour = time.Now().Hour()
94 var minLoadHour = -1
95 for _, v := range minLoadHours {
96 if v == hour {
97 minLoadHour = v
98 break
99 }
100 if v > hour {
101 minLoadHour = v
102 break
103 }
104 }
105 if minLoadHour < 0 {
106 minLoadHour = minLoadHours[0]
107 }
108
109 if minLoadHour == hour {
110 fsutils.WaitLoad(15, 10, time.Minute)
111 return
112 }
113
114 if minLoadHour < hour {
115 time.Sleep(time.Duration(24-hour+minLoadHour) * time.Hour)
116 } else {
117 time.Sleep(time.Duration(minLoadHour-hour) * time.Hour)
118 }
119 fsutils.WaitLoad(15, 10, time.Minute)
120}
121
122func RunTicker(ticker *time.Ticker, f func()) {
123 for range ticker.C {

Callers 2

TestRunFunction · 0.92
RunTickerFunction · 0.70

Calls 1

HourMethod · 0.80

Tested by 1

TestRunFunction · 0.74