Don't wake CacheWarmer every 10 seconds, let it sleep :)

This commit is contained in:
Deluan
2023-01-18 19:31:15 -05:00
parent 136d5f9a83
commit 7fc964aec5
2 changed files with 22 additions and 9 deletions
+4 -4
View File
@@ -7,12 +7,13 @@ import (
"github.com/navidrome/navidrome/log"
"github.com/navidrome/navidrome/model"
"github.com/navidrome/navidrome/utils/pl"
)
func newBufferedScrobbler(ds model.DataStore, s Scrobbler, service string) *bufferedScrobbler {
b := &bufferedScrobbler{ds: ds, wrapped: s, service: service}
b.wakeSignal = make(chan struct{}, 1)
go b.run()
go b.run(context.TODO())
return b
}
@@ -49,15 +50,14 @@ func (b *bufferedScrobbler) sendWakeSignal() {
}
}
func (b *bufferedScrobbler) run() {
ctx := context.Background()
func (b *bufferedScrobbler) run(ctx context.Context) {
for {
if !b.processQueue(ctx) {
time.AfterFunc(5*time.Second, func() {
b.sendWakeSignal()
})
}
<-b.wakeSignal
<-pl.ReadOrDone(ctx, b.wakeSignal)
}
}