From 0a804e39a80f890a5efe67b6628cac3f0474322a Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 17 Jul 2014 13:39:04 +0200 Subject: [PATCH] Fix scan interval for slow scans --- model/puller.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/model/puller.go b/model/puller.go index 8f6d23d4..e9499aba 100644 --- a/model/puller.go +++ b/model/puller.go @@ -127,9 +127,10 @@ func (p *puller) run() { } }() - walkTicker := time.Tick(time.Duration(p.cfg.Options.RescanIntervalS) * time.Second) timeout := time.Tick(5 * time.Second) changed := true + scanintv := time.Duration(p.cfg.Options.RescanIntervalS) * time.Second + lastscan := time.Now() var prevVer uint64 for { @@ -179,18 +180,17 @@ func (p *puller) run() { p.model.setState(p.repoCfg.ID, RepoIdle) // Do a rescan if it's time for it - select { - case <-walkTicker: + if time.Since(lastscan) > scanintv { if debug { l.Debugf("%q: time for rescan", p.repoCfg.ID) } + err := p.model.ScanRepo(p.repoCfg.ID) if err != nil { invalidateRepo(p.cfg, p.repoCfg.ID, err) return } - - default: + lastscan = time.Now() } if v := p.model.LocalVersion(p.repoCfg.ID); v > prevVer {