This repository has been archived on 2025-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
trantor/tasker.go
2014-02-11 11:02:22 +01:00

28 lines
915 B
Go

package main
import (
"time"
)
func InitTasks(db *DB) {
periodicTask(db.UpdateTags, MINUTES_UPDATE_TAGS*time.Minute)
periodicTask(db.UpdateMostVisited, MINUTES_UPDATE_VISITED*time.Minute)
periodicTask(db.UpdateDownloadedBooks, MINUTES_UPDATE_DOWNLOADED*time.Minute)
periodicTask(db.UpdateHourVisits, MINUTES_UPDATE_HOURLY*time.Minute)
periodicTask(db.UpdateDayVisits, MINUTES_UPDATE_DAILY*time.Minute)
periodicTask(db.UpdateMonthVisits, MINUTES_UPDATE_MONTHLY*time.Minute)
periodicTask(db.UpdateHourDownloads, MINUTES_UPDATE_HOURLY*time.Minute)
periodicTask(db.UpdateDayDownloads, MINUTES_UPDATE_DAILY*time.Minute)
periodicTask(db.UpdateMonthDownloads, MINUTES_UPDATE_MONTHLY*time.Minute)
}
func periodicTask(task func() error, periodicity time.Duration) {
go tasker(task, periodicity)
}
func tasker(task func() error, periodicity time.Duration) {
for true {
time.Sleep(periodicity)
task()
}
}