forked from tangled.org/core
this repo has no description

eventconsumer: stagger loop connection iterations by a minute

oppi.li ac5359ba 68f0bf1b

verified
Changed files
+12 -1
eventconsumer
+12 -1
eventconsumer/consumer.go
···
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)
}
}
}