feat(cmd): start scrobble worker alongside HTTP server
This commit is contained in:
@@ -16,6 +16,8 @@ import (
|
|||||||
"git.fabledsword.com/bvandeusen/minstrel/internal/db"
|
"git.fabledsword.com/bvandeusen/minstrel/internal/db"
|
||||||
"git.fabledsword.com/bvandeusen/minstrel/internal/library"
|
"git.fabledsword.com/bvandeusen/minstrel/internal/library"
|
||||||
"git.fabledsword.com/bvandeusen/minstrel/internal/logging"
|
"git.fabledsword.com/bvandeusen/minstrel/internal/logging"
|
||||||
|
"git.fabledsword.com/bvandeusen/minstrel/internal/scrobble"
|
||||||
|
"git.fabledsword.com/bvandeusen/minstrel/internal/scrobble/listenbrainz"
|
||||||
"git.fabledsword.com/bvandeusen/minstrel/internal/server"
|
"git.fabledsword.com/bvandeusen/minstrel/internal/server"
|
||||||
"git.fabledsword.com/bvandeusen/minstrel/internal/subsonic"
|
"git.fabledsword.com/bvandeusen/minstrel/internal/subsonic"
|
||||||
)
|
)
|
||||||
@@ -73,6 +75,12 @@ func run() error {
|
|||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Start the ListenBrainz scrobble worker. Per spec §M4a, runs every 30s
|
||||||
|
// and drains up to 50 pending rows per tick. Per-user gating happens
|
||||||
|
// inside the worker (rows from disabled users are skipped).
|
||||||
|
scrobbleWorker := scrobble.NewWorker(pool, listenbrainz.NewClient(), logger.With("component", "scrobble"))
|
||||||
|
go scrobbleWorker.Run(ctx)
|
||||||
|
|
||||||
srv := server.New(logger, pool, scanner, subsonic.Config{
|
srv := server.New(logger, pool, scanner, subsonic.Config{
|
||||||
AllowPlaintextPassword: cfg.Subsonic.AllowPlaintextPassword,
|
AllowPlaintextPassword: cfg.Subsonic.AllowPlaintextPassword,
|
||||||
}, cfg.Events, cfg.Recommendation)
|
}, cfg.Events, cfg.Recommendation)
|
||||||
|
|||||||
Reference in New Issue
Block a user