From eff5a1f9f7adae3698b41a67a7a7427f8f393b2e Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 13 Sep 2019 07:53:00 +0000 Subject: [PATCH] Refactor: pull Publish() call up to publishLoop() --- probe/probe.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/probe/probe.go b/probe/probe.go index c609f6319..0af1f19cc 100644 --- a/probe/probe.go +++ b/probe/probe.go @@ -208,7 +208,7 @@ func (p *Probe) tag(r report.Report) report.Report { return r } -func (p *Probe) drainAndPublish(rpt report.Report, rs chan report.Report) { +func (p *Probe) drainAndSanitise(rpt report.Report, rs chan report.Report) report.Report { p.rateLimiter.Wait(context.Background()) ForLoop: for { @@ -225,9 +225,7 @@ ForLoop: t.Controls = report.Controls{} }) } - if err := p.publisher.Publish(rpt); err != nil { - log.Infof("Publish: %v", err) - } + return rpt } func (p *Probe) publishLoop() { @@ -235,15 +233,21 @@ func (p *Probe) publishLoop() { pubTick := time.Tick(p.publishInterval) for { + var err error select { case <-pubTick: - p.drainAndPublish(report.MakeReport(), p.spiedReports) + rpt := p.drainAndSanitise(report.MakeReport(), p.spiedReports) + err = p.publisher.Publish(rpt) case rpt := <-p.shortcutReports: - p.drainAndPublish(rpt, p.shortcutReports) + rpt = p.drainAndSanitise(rpt, p.shortcutReports) + err = p.publisher.Publish(rpt) case <-p.quit: return } + if err != nil { + log.Infof("Publish: %v", err) + } } }