Es gibt einen Job, bei dem ich ansässig sein und regelmäßig ausgeführt werden möchte. Wenn es sich jedoch um einen normalen Ticker handelt, beginnt die Intervallzählung ab dem Zeitpunkt, zu dem der Ticker nach dem Start erstellt wurde, sodass die Zeit nicht genau festgelegt werden kann. Selbst wenn der Ticker auf ein Intervall von 12:00:00 eingestellt wäre, würde er gelegentlich auf 11: 59: 59.999 verschoben, und die verarbeiteten Daten würden dupliziert und registriert.
https://github.com/xbridges/Scheduler Der Ticker ruft Sie einfach genau im angegebenen Zeitintervall an.
ex) sch, next := NewScheduler(3600, 0)
Wenn Sie so beginnen, wird der Ticker einmal pro Stunde ausgelöst. Wenn Sie den Versatzwert verwenden, beträgt das Intervall jede Stunde (3600). Wenn Sie jedoch den Versatz auf 600 einstellen, wird der Ticker stündlich um 05 Minuten ausgelöst.
Ich wickle nur den Ticker ein, aber Kimo
is := time.Duration(interval) * time.Second // <--Stellen Sie die angegebene Zeit auf Dauer ein
n := time.Now() // <--Aktuelle Uhrzeit
ns := n.Round(is) // <--Es fühlt sich an, als würde man die aktuelle Zeit mit einer Intervallzeit maskieren und runden.
Wenn Sie dies tun, bewegt sich der Ticker gelegentlich zu früh, und selbst wenn er 59 Minuten 59 Sekunden .9999 erreicht, wird er abgerundet, sodass die Zeit in den nächsten 00 Minuten ordnungsgemäß ausgelöst wird.
Ich machte mir eine Notiz, weil es regelmäßig lief und ich ein wenig süchtig danach war.
http://okzk.hatenablog.com/entry/2015/12/01/001924
Recommended Posts