diff options
Diffstat (limited to '')
| -rw-r--r-- | internal/controlplane/manager.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/internal/controlplane/manager.go b/internal/controlplane/manager.go index cdafc36..b6be748 100644 --- a/internal/controlplane/manager.go +++ b/internal/controlplane/manager.go @@ -176,6 +176,10 @@ func (m *Manager) runSubscriptions(ctx context.Context) { closed = true continue } + // go-redis transparently reconnects Pub/Sub after a network outage. + // Receiving a message is the strongest signal that this subscription + // is live again, including when a concurrent publish previously failed. + m.redisConnected.Store(true) var event ChangeEvent if json.Unmarshal([]byte(message.Payload), &event) != nil || event.Generation <= m.generation.Load() { continue |
