Il y a un travail que je veux être résident et exécuter régulièrement, mais s'il s'agit d'un ticker normal, le compte d'intervalle commence à partir du moment où le ticker est créé après son démarrage, donc l'heure ne peut pas être réglée exactement. De plus, même si le ticker était réglé sur intervalle de sorte qu'il soit 12:00:00, il se déplaçait occasionnellement à 11: 59: 59.999, et les données traitées seraient dupliquées et enregistrées.
https://github.com/xbridges/Scheduler Simplement, le ticker vous appellera exactement à l'intervalle de temps spécifié.
ex) sch, next := NewScheduler(3600, 0)
Si vous commencez ainsi, le ticker se déclenchera une fois toutes les heures. En outre, si vous utilisez la valeur de décalage, l'intervalle est toutes les heures (3600), mais si vous définissez le décalage: 600, le ticker se déclenchera à 05 minutes toutes les heures.
J'emballe juste le ticker, mais Kimo
is := time.Duration(interval) * time.Second // <--Définissez l'heure spécifiée sur Durée
n := time.Now() // <--Heure actuelle
ns := n.Round(is) // <--C'est comme masquer l'heure actuelle avec un intervalle de temps et l'arrondir.
Si vous faites cela, le ticker se déplacera parfois tôt, et même s'il atteint 59 minutes 59 secondes .9999, il sera arrondi, de sorte que l'heure se déclenchera correctement aux 00 minutes suivantes.
J'ai fait une note car elle fonctionnait régulièrement et j'en étais un peu accro.
http://okzk.hatenablog.com/entry/2015/12/01/001924
Recommended Posts