mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-04 21:17:37 +03:00
Revert "Make caches singletons"
This commit is contained in:
parent
bf5318d776
commit
95cc211659
2 changed files with 26 additions and 44 deletions
|
@ -12,7 +12,6 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/deluan/navidrome/core/cache"
|
"github.com/deluan/navidrome/core/cache"
|
||||||
|
@ -206,23 +205,15 @@ func readFromFile(path string) ([]byte, error) {
|
||||||
return buf.Bytes(), nil
|
return buf.Bytes(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
|
||||||
onceImageCache sync.Once
|
|
||||||
imageCache ArtworkCache
|
|
||||||
)
|
|
||||||
|
|
||||||
func NewImageCache() ArtworkCache {
|
func NewImageCache() ArtworkCache {
|
||||||
onceImageCache.Do(func() {
|
return cache.NewFileCache("Image", conf.Server.ImageCacheSize, consts.ImageCacheDir, consts.DefaultImageCacheMaxItems,
|
||||||
imageCache = cache.NewFileCache("Image", conf.Server.ImageCacheSize, consts.ImageCacheDir, consts.DefaultImageCacheMaxItems,
|
func(ctx context.Context, arg cache.Item) (io.Reader, error) {
|
||||||
func(ctx context.Context, arg cache.Item) (io.Reader, error) {
|
info := arg.(*imageInfo)
|
||||||
info := arg.(*imageInfo)
|
reader, err := info.a.getArtwork(ctx, info.id, info.path, info.size)
|
||||||
reader, err := info.a.getArtwork(ctx, info.id, info.path, info.size)
|
if err != nil {
|
||||||
if err != nil {
|
log.Error(ctx, "Error loading artwork art", "path", info.path, "size", info.size, err)
|
||||||
log.Error(ctx, "Error loading artwork art", "path", info.path, "size", info.size, err)
|
return nil, err
|
||||||
return nil, err
|
}
|
||||||
}
|
return reader, nil
|
||||||
return reader, nil
|
})
|
||||||
})
|
|
||||||
})
|
|
||||||
return imageCache
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"mime"
|
"mime"
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/deluan/navidrome/conf"
|
"github.com/deluan/navidrome/conf"
|
||||||
|
@ -168,29 +167,21 @@ func selectTranscodingOptions(ctx context.Context, ds model.DataStore, mf *model
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
|
||||||
onceTranscodingCache sync.Once
|
|
||||||
transcodingCache TranscodingCache
|
|
||||||
)
|
|
||||||
|
|
||||||
func NewTranscodingCache() TranscodingCache {
|
func NewTranscodingCache() TranscodingCache {
|
||||||
onceTranscodingCache.Do(func() {
|
return cache.NewFileCache("Transcoding", conf.Server.TranscodingCacheSize,
|
||||||
transcodingCache = cache.NewFileCache("Transcoding", conf.Server.TranscodingCacheSize,
|
consts.TranscodingCacheDir, consts.DefaultTranscodingCacheMaxItems,
|
||||||
consts.TranscodingCacheDir, consts.DefaultTranscodingCacheMaxItems,
|
func(ctx context.Context, arg cache.Item) (io.Reader, error) {
|
||||||
func(ctx context.Context, arg cache.Item) (io.Reader, error) {
|
job := arg.(*streamJob)
|
||||||
job := arg.(*streamJob)
|
t, err := job.ms.ds.Transcoding(ctx).FindByFormat(job.format)
|
||||||
t, err := job.ms.ds.Transcoding(ctx).FindByFormat(job.format)
|
if err != nil {
|
||||||
if err != nil {
|
log.Error(ctx, "Error loading transcoding command", "format", job.format, err)
|
||||||
log.Error(ctx, "Error loading transcoding command", "format", job.format, err)
|
return nil, os.ErrInvalid
|
||||||
return nil, os.ErrInvalid
|
}
|
||||||
}
|
out, err := job.ms.ffm.Start(ctx, t.Command, job.mf.Path, job.bitRate)
|
||||||
out, err := job.ms.ffm.Start(ctx, t.Command, job.mf.Path, job.bitRate)
|
if err != nil {
|
||||||
if err != nil {
|
log.Error(ctx, "Error starting transcoder", "id", job.mf.ID, err)
|
||||||
log.Error(ctx, "Error starting transcoder", "id", job.mf.ID, err)
|
return nil, os.ErrInvalid
|
||||||
return nil, os.ErrInvalid
|
}
|
||||||
}
|
return out, nil
|
||||||
return out, nil
|
})
|
||||||
})
|
|
||||||
})
|
|
||||||
return transcodingCache
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue