Clean up tasker code
This commit is contained in:
parent
4130e43689
commit
b196750fa5
1 changed files with 11 additions and 74 deletions
85
tasker.go
85
tasker.go
|
@ -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()
|
||||
|
|
Reference in a new issue