diff --git a/pkg/api/stashdb.go b/pkg/api/stashdb.go index e2fd4ae55..b4e02b590 100644 --- a/pkg/api/stashdb.go +++ b/pkg/api/stashdb.go @@ -2,9 +2,11 @@ package api import ( "net/http" + "time" "github.com/emicklei/go-restful/v3" "github.com/xbapps/xbvr/pkg/externalreference" + "github.com/xbapps/xbvr/pkg/models" "github.com/xbapps/xbvr/pkg/scrape" ) @@ -32,13 +34,21 @@ func (i ExternalReference) stashRunAll(req *restful.Request, resp *restful.Respo func StashdbRunAll() { go func() { - scrape.StashDb() - - externalreference.ApplySceneRules() - externalreference.MatchAkaPerformers() - externalreference.UpdateAllPerformerData() - tlog := log.WithField("task", "scrape") - tlog.Info("Stashdb Refresh Complete") - + if !models.CheckLock("scrape") { + models.CreateLock("scrape") + defer models.RemoveLock("scrape") + + t0 := time.Now() + tlog := log.WithField("task", "scrape") + tlog.Infof("StashDB Refresh started at %s", t0.Format("Mon Jan _2 15:04:05 2006")) + scrape.StashDb() + + externalreference.ApplySceneRules() + externalreference.MatchAkaPerformers() + externalreference.UpdateAllPerformerData() + tlog = log.WithField("task", "scrape") + tlog.Infof("Stashdb Refresh Complete in %s", + time.Since(t0).Round(time.Second)) + } }() }