From db3537a8ebabaa0eb5b6d61160b720708ddc8ecd Mon Sep 17 00:00:00 2001 From: James Allen Date: Wed, 19 Nov 2014 11:25:09 +0000 Subject: [PATCH] Reset heartbeat timer after triggering a reconnect --- libraries/redis-wrapper/index.coffee | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libraries/redis-wrapper/index.coffee b/libraries/redis-wrapper/index.coffee index be15ac89ff..04eca38450 100644 --- a/libraries/redis-wrapper/index.coffee +++ b/libraries/redis-wrapper/index.coffee @@ -39,10 +39,12 @@ module.exports = RedisSharelatex = lastHeartbeat = Date.now() reconnectIfInactive = () -> - timeSinceLastHeartBeat = Date.now() - lastHeartbeat - if timeSinceLastHeartBeat > reconnectAfter - console.warn "No heartbeat for #{timeSinceLastHeartBeat}ms, reconnecting" - sub.connection_gone("no heartbeat for #{timeSinceLastHeartBeat}ms") + timeSinceLastHeartbeat = Date.now() - lastHeartbeat + if timeSinceLastHeartbeat > reconnectAfter + console.warn "No heartbeat for #{timeSinceLastHeartbeat}ms, reconnecting" + sub.connection_gone("no heartbeat for #{timeSinceLastHeartbeat}ms") + # Reset timer after triggering a reconnect to avoid potential cascading failure. + lastHeartbeat = Date.now() setInterval () -> pub.publish heartbeatChannel, "PING"