From ac5359ba6ccb77f8aef3d32483fa1e0e58f46985 Mon Sep 17 00:00:00 2001 From: oppiliappan Date: Fri, 11 Jul 2025 15:31:00 +0100 Subject: [PATCH] eventconsumer: stagger loop connection iterations by a minute --- eventconsumer/consumer.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/eventconsumer/consumer.go b/eventconsumer/consumer.go index df98ffba..1d87a3cb 100644 --- a/eventconsumer/consumer.go +++ b/eventconsumer/consumer.go @@ -172,15 +172,26 @@ func (c *Consumer) worker(ctx context.Context) { func (c *Consumer) startConnectionLoop(ctx context.Context, source Source) { defer c.wg.Done() + // attempt connection initially + err := c.runConnection(ctx, source) + if err != nil { + c.logger.Error("failed to run connection", "err", err) + } + + timer := time.NewTimer(1 * time.Minute) + defer timer.Stop() + + // every subsequent attempt is delayed by 1 minute for { select { case <-ctx.Done(): return - default: + case <-timer.C: err := c.runConnection(ctx, source) if err != nil { c.logger.Error("failed to run connection", "err", err) } + timer.Reset(1 * time.Minute) } } } -- 2.51.2