Add configuration for scan interval. Default 5 mins

This commit is contained in:
Deluan
2020-01-22 08:48:02 -05:00
parent f0ee41a8af
commit 182c0b5d5e
2 changed files with 13 additions and 6 deletions
+1
View File
@@ -21,6 +21,7 @@ type sonic struct {
ProbeCommand string `default:"ffmpeg %s -f ffmetadata"` ProbeCommand string `default:"ffmpeg %s -f ffmetadata"`
PlsIgnoreFolders bool `default:"true"` PlsIgnoreFolders bool `default:"true"`
PlsIgnoredPatterns string `default:"^iCloud;\\~"` PlsIgnoredPatterns string `default:"^iCloud;\\~"`
ScanInterval string `default:"5m"`
// DevFlags. These are used to enable/disable debugging and incomplete features // DevFlags. These are used to enable/disable debugging and incomplete features
DevDisableAuthentication bool `default:"false"` DevDisableAuthentication bool `default:"false"`
+9 -3
View File
@@ -68,15 +68,21 @@ func (a *Server) initRoutes() {
} }
func (a *Server) initScanner() { func (a *Server) initScanner() {
interval, err := time.ParseDuration(conf.Sonic.ScanInterval)
if err != nil {
log.Error("Invalid interval specification. Using default of 5m", "conf", conf.Sonic.ScanInterval, err)
interval = 5 * time.Minute
} else {
log.Info("Starting scanner", "interval", interval.String())
}
go func() { go func() {
time.Sleep(2 * time.Second)
for { for {
select {
case <-time.After(5 * time.Second):
err := a.Scanner.RescanAll(false) err := a.Scanner.RescanAll(false)
if err != nil { if err != nil {
log.Error("Error scanning media folder", "folder", conf.Sonic.MusicFolder, err) log.Error("Error scanning media folder", "folder", conf.Sonic.MusicFolder, err)
} }
} time.Sleep(interval)
} }
}() }()
} }