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

37 lines
1.1 KiB
Go
Raw Normal View History

package main
import (
2014-08-30 13:17:50 -05:00
log "github.com/cihub/seelog"
"time"
2014-08-30 13:17:50 -05:00
2015-04-21 21:32:01 -04:00
"gitlab.com/trantor/trantor/database"
)
2014-06-29 19:41:29 -05:00
func InitTasks(db *database.DB) {
2014-02-11 12:59:58 +01:00
periodicTask(updateLogger, MINUTES_UPDATE_LOGGER*time.Minute)
2014-02-11 11:02:22 +01:00
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_V*time.Minute)
periodicTask(db.UpdateDayVisits, MINUTES_UPDATE_DAILY_V*time.Minute)
periodicTask(db.UpdateMonthVisits, MINUTES_UPDATE_MONTHLY_V*time.Minute)
periodicTask(db.UpdateHourDownloads, MINUTES_UPDATE_HOURLY_D*time.Minute)
periodicTask(db.UpdateDayDownloads, MINUTES_UPDATE_DAILY_D*time.Minute)
periodicTask(db.UpdateMonthDownloads, MINUTES_UPDATE_MONTHLY_D*time.Minute)
2014-02-11 11:02:22 +01:00
}
func periodicTask(task func() error, periodicity time.Duration) {
go tasker(task, periodicity)
}
2014-02-11 11:02:22 +01:00
func tasker(task func() error, periodicity time.Duration) {
for true {
time.Sleep(periodicity)
err := task()
if err != nil {
2014-02-11 13:13:43 +01:00
log.Error("Task error: ", err)
}
}
}