Clean up tasker code

This commit is contained in:
Las Zenow 2014-02-11 11:02:22 +01:00
parent 4130e43689
commit b196750fa5

View file

@ -5,85 +5,22 @@ import (
)
func InitTasks(db *DB) {
initTagsTask(db)
initVisitedTask(db)
initDownloadedTask(db)
initHourVisitsTask(db)
initDayVisitsTask(db)
initMonthVisitsTask(db)
initHourDownloadsTask(db)
initDayDownloadsTask(db)
initMonthDownloadsTask(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 initTagsTask(db *DB) {
updateTags := func() {
db.UpdateTags()
}
periodicTask(updateTags, MINUTES_UPDATE_TAGS*time.Minute)
}
func initVisitedTask(db *DB) {
updateVisited := func() {
db.UpdateMostVisited()
}
periodicTask(updateVisited, MINUTES_UPDATE_VISITED*time.Minute)
}
func initDownloadedTask(db *DB) {
updateDownloaded := func() {
db.UpdateDownloadedBooks()
}
periodicTask(updateDownloaded, MINUTES_UPDATE_DOWNLOADED*time.Minute)
}
func initHourVisitsTask(db *DB) {
updateHourVisits := func() {
db.UpdateHourVisits()
}
periodicTask(updateHourVisits, MINUTES_UPDATE_HOURLY*time.Minute)
}
func initDayVisitsTask(db *DB) {
updateDayVisits := func() {
db.UpdateDayVisits()
}
periodicTask(updateDayVisits, MINUTES_UPDATE_HOURLY*time.Minute)
}
func initMonthVisitsTask(db *DB) {
updateMonthVisits := func() {
db.UpdateMonthVisits()
}
periodicTask(updateMonthVisits, MINUTES_UPDATE_HOURLY*time.Minute)
}
func initHourDownloadsTask(db *DB) {
updateHourDownloads := func() {
db.UpdateHourDownloads()
}
periodicTask(updateHourDownloads, MINUTES_UPDATE_HOURLY*time.Minute)
}
func initDayDownloadsTask(db *DB) {
updateDayDownloads := func() {
db.UpdateDayDownloads()
}
periodicTask(updateDayDownloads, MINUTES_UPDATE_HOURLY*time.Minute)
}
func initMonthDownloadsTask(db *DB) {
updateMonthDownloads := func() {
db.UpdateMonthDownloads()
}
periodicTask(updateMonthDownloads, MINUTES_UPDATE_HOURLY*time.Minute)
}
func periodicTask(task func(), periodicity time.Duration) {
func periodicTask(task func() error, periodicity time.Duration) {
go tasker(task, periodicity)
}
func tasker(task func(), periodicity time.Duration) {
func tasker(task func() error, periodicity time.Duration) {
for true {
time.Sleep(periodicity)
task()