2022-05-03 17:54:51 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/hibiken/asynq"
|
|
|
|
"github.com/rs/zerolog/log"
|
|
|
|
)
|
|
|
|
|
|
|
|
var scheduler *asynq.Scheduler
|
|
|
|
|
|
|
|
func runScheduler(app *App) {
|
|
|
|
scheduler = asynq.NewScheduler(app.rClient, nil)
|
|
|
|
|
2022-05-03 20:37:48 +02:00
|
|
|
// TODO: Refactor boilerplate and pull enabled tasks from koanf
|
2022-05-03 17:54:51 +02:00
|
|
|
tokenTask := asynq.NewTask("token:sync", nil)
|
2022-05-03 20:37:48 +02:00
|
|
|
cacheTask := asynq.NewTask("cache:sync", nil)
|
|
|
|
ussdTask := asynq.NewTask("ussd:sync", nil)
|
2022-05-03 17:54:51 +02:00
|
|
|
|
2022-05-03 20:37:48 +02:00
|
|
|
_, err := scheduler.Register(conf.String("token.schedule"), tokenTask)
|
2022-05-03 17:54:51 +02:00
|
|
|
if err != nil {
|
|
|
|
log.Fatal().Err(err).Msg("failed to register token syncer")
|
|
|
|
}
|
|
|
|
log.Info().Msg("successfully registered token syncer")
|
|
|
|
|
2022-05-03 20:37:48 +02:00
|
|
|
_, err = scheduler.Register(conf.String("cache.schedule"), cacheTask)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal().Err(err).Msg("failed to register cache syncer")
|
|
|
|
}
|
|
|
|
log.Info().Msg("successfully registered cache syncer")
|
|
|
|
|
|
|
|
_, err = scheduler.Register(conf.String("ussd.schedule"), ussdTask)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal().Err(err).Msg("failed to register ussd syncer")
|
|
|
|
}
|
|
|
|
log.Info().Msg("successfully registered ussd syncer")
|
|
|
|
|
2022-05-03 17:54:51 +02:00
|
|
|
if err := scheduler.Run(); err != nil {
|
|
|
|
log.Fatal().Err(err).Msg("could not start asynq scheduler")
|
|
|
|
}
|
|
|
|
}
|