даны следующие 2 функции.
func main() {
index := int(0)
for {
Loop(index)
index = (index + 1) % 86400 // Max interval: 1 day
time.Sleep(1 * time.Second)
}
}
func Loop(index int) {
if index%10 == 0 {
go doSomething...
}
}
Я хочу что-то выполнять каждые 10/60/3600 секунд. Поэтому я подумал, что увеличение индекса с модулем должно сделать это.
Но я заметил (особенно на серверах с высоким трафиком), что некоторые из этих циклов, по-видимому, пропускаются.
Я просматривал свои журналы, и иногда каждые 10 секунд что-то происходит, но иногда разрыв составляет до 1 минуты.
Кто-нибудь знает, почему это происходит?