Add cron tasks to distillery

This commit is contained in:
Tom Wiesing 2022-12-07 10:30:48 +01:00
parent 790460f9de
commit f52fe6abf3
No known key found for this signature in database
19 changed files with 353 additions and 141 deletions

View file

@ -2,36 +2,20 @@ package resolver
import (
"context"
"io"
"time"
"github.com/FAU-CDI/wisski-distillery/pkg/logging"
"github.com/FAU-CDI/wisski-distillery/pkg/timex"
)
// updatePrefixes starts updating prefixes
func (resolver *Resolver) updatePrefixes(ctx context.Context, progress io.Writer) {
go func() {
for t := range timex.TickContext(ctx, resolver.RefreshInterval) {
logging.ProgressF(progress, ctx, "[%s]: reloading prefixes\n", t.Format(time.Stamp))
func (resolver *Resolver) TaskName() string {
return "reloading prefixes"
}
err := (func() (err error) {
ctx, cancel := context.WithTimeout(ctx, resolver.RefreshInterval)
defer cancel()
func (resolver *Resolver) Cron(ctx context.Context) error {
prefixes, err := resolver.AllPrefixes(ctx)
if err != nil {
return err
}
prefixes, err := resolver.AllPrefixes(ctx)
if err != nil {
return err
}
resolver.prefixes.Set(prefixes)
return nil
})()
if err != nil {
logging.ProgressF(progress, ctx, "error reloading prefixes: %s", err.Error())
}
}
}()
resolver.prefixes.Set(prefixes)
return nil
}
// AllPrefixes returns a list of all prefixes from the server.