clean up old tickers

This commit is contained in:
sentriz
2023-10-04 21:36:55 +01:00
parent 315c4f834e
commit 04c7fa2efd

View File

@@ -293,28 +293,32 @@ func main() {
defer logJob("session clean")() defer logJob("session clean")()
ticker := time.NewTicker(10 * time.Minute) ticker := time.NewTicker(10 * time.Minute)
select { defer ticker.Stop()
case <-ctx.Done(): for {
return nil select {
case <-ticker.C: case <-ctx.Done():
sessDB.Cleanup() return nil
case <-ticker.C:
sessDB.Cleanup()
}
} }
return nil
}) })
errgrp.Go(func() error { errgrp.Go(func() error {
defer logJob("podcast refresh")() defer logJob("podcast refresh")()
ticker := time.NewTicker(time.Hour) ticker := time.NewTicker(time.Hour)
select { defer ticker.Stop()
case <-ctx.Done(): for {
return nil select {
case <-ticker.C: case <-ctx.Done():
if err := podcast.RefreshPodcasts(); err != nil { return nil
log.Printf("failed to refresh some feeds: %s", err) case <-ticker.C:
if err := podcast.RefreshPodcasts(); err != nil {
log.Printf("failed to refresh some feeds: %s", err)
}
} }
} }
return nil
}) })
errgrp.Go(func() error { errgrp.Go(func() error {
@@ -325,15 +329,17 @@ func main() {
defer logJob("podcast purge")() defer logJob("podcast purge")()
ticker := time.NewTicker(24 * time.Hour) ticker := time.NewTicker(24 * time.Hour)
select { defer ticker.Stop()
case <-ctx.Done(): for {
return nil select {
case <-ticker.C: case <-ctx.Done():
if err := podcast.PurgeOldPodcasts(time.Duration(*confPodcastPurgeAgeDays) * 24 * time.Hour); err != nil { return nil
log.Printf("error purging old podcasts: %v", err) case <-ticker.C:
if err := podcast.PurgeOldPodcasts(time.Duration(*confPodcastPurgeAgeDays) * 24 * time.Hour); err != nil {
log.Printf("error purging old podcasts: %v", err)
}
} }
} }
return nil
}) })
errgrp.Go(func() error { errgrp.Go(func() error {
@@ -344,15 +350,17 @@ func main() {
defer logJob("scan timer")() defer logJob("scan timer")()
ticker := time.NewTicker(time.Duration(*confScanIntervalMins) * time.Minute) ticker := time.NewTicker(time.Duration(*confScanIntervalMins) * time.Minute)
select { defer ticker.Stop()
case <-ctx.Done(): for {
return nil select {
case <-ticker.C: case <-ctx.Done():
if _, err := scannr.ScanAndClean(scanner.ScanOptions{}); err != nil { return nil
log.Printf("error scanning: %v", err) case <-ticker.C:
if _, err := scannr.ScanAndClean(scanner.ScanOptions{}); err != nil {
log.Printf("error scanning: %v", err)
}
} }
} }
return nil
}) })
errgrp.Go(func() error { errgrp.Go(func() error {
@@ -412,14 +420,17 @@ func main() {
defer logJob("refresh artist info")() defer logJob("refresh artist info")()
ticker := time.NewTicker(8 * time.Second) ticker := time.NewTicker(8 * time.Second)
select { defer ticker.Stop()
case <-ctx.Done(): for {
case <-ticker.C: select {
if err := artistInfoCache.Refresh(); err != nil { case <-ctx.Done():
log.Printf("error in artist info cache: %v", err) return nil
case <-ticker.C:
if err := artistInfoCache.Refresh(); err != nil {
log.Printf("error in artist info cache: %v", err)
}
} }
} }
return nil
}) })
errgrp.Go(func() error { errgrp.Go(func() error {