12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package main
- import "time"
- /*
- Nightly.go
- author: tobychui
- This is a handle for putting everything that is required to run everynight.
- Default: Run once every day 3am in the morning.
- */
- var NightlTasks = []func(){}
- func NightlyInit() {
- //Start the nightly scheduler
- go func() {
- t := time.Now()
- n := time.Date(t.Year(), t.Month(), t.Day(), *nightlyTaskRunTime, 0, 0, 0, t.Location())
- d := n.Sub(t)
- if d < 0 {
- n = n.Add(24 * time.Hour)
- d = n.Sub(t)
- }
- for {
- time.Sleep(d)
- d = 24 * time.Hour
- NightlyTaskRun()
- }
- }()
- }
- func NightlyTaskRun() {
- for _, nightlyTask := range NightlTasks {
- nightlyTask()
- }
- }
- func RegisterNightlyTask(task func()) {
- NightlTasks = append(NightlTasks, task)
- }
|