From c0ca6aaf0337a23b3f1d2a867884afe89fd4a281 Mon Sep 17 00:00:00 2001 From: sentriz Date: Mon, 28 Jun 2021 21:34:06 +0100 Subject: [PATCH] fix(scanner): spawn interval scans in a goroutine this way, if the average scan takes longer than the tick interval, the ticker will be unblocked and scans won't stack on top of each other related #63 --- server/server.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/server.go b/server/server.go index 65e896e..3b0c03b 100644 --- a/server/server.go +++ b/server/server.go @@ -271,9 +271,11 @@ func (s *Server) StartScanTicker(dur time.Duration) (FuncExecute, FuncInterrupt) case <-done: return nil case <-ticker.C: - if err := s.scanner.Start(scanner.ScanOptions{}); err != nil { - log.Printf("error scanning: %v", err) - } + go func() { + if err := s.scanner.Start(scanner.ScanOptions{}); err != nil { + log.Printf("error scanning: %v", err) + } + }() } } }