Răsfoiți Sursa

Reset heartbeat timer after triggering a reconnect

James Allen 12 ani în urmă
părinte
comite
db3537a8eb
1 a modificat fișierele cu 6 adăugiri și 4 ștergeri
  1. 6 4
      libraries/redis-wrapper/index.coffee

+ 6 - 4
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"