mirror of
https://github.com/overleaf/overleaf.git
synced 2024-09-16 02:52:31 -04:00
Let the client take care of reconnecting only when the stream is actually ended
This commit is contained in:
parent
861eafd88d
commit
42cbaecbe0
1 changed files with 6 additions and 3 deletions
|
@ -41,17 +41,20 @@ module.exports = RedisSharelatex =
|
|||
reconnectIfInactive = () ->
|
||||
timeSinceLastHeartbeat = Date.now() - lastHeartbeat
|
||||
if timeSinceLastHeartbeat > reconnectAfter
|
||||
console.warn "[#{new Date()}] No heartbeat for #{timeSinceLastHeartbeat}ms on #{heartbeatChannel}, reconnecting"
|
||||
# If the client realises it isn't connected then will be trying to
|
||||
# restablish the connection, so there's nothing for us to do. If
|
||||
# it still thinks it's connected, then disconnect it and start to reconnect.
|
||||
if sub.connected
|
||||
console.warn "[#{new Date()}] No heartbeat for #{timeSinceLastHeartbeat}ms on #{heartbeatChannel}, reconnecting"
|
||||
sub.end()
|
||||
# We ended the connection, but want to start it up again, so set
|
||||
# the internal closing variable:
|
||||
sub.closing = false
|
||||
# Trigger the reconnect:
|
||||
sub.connection_gone("no heartbeat for #{timeSinceLastHeartbeat}ms")
|
||||
# Trigger the reconnect (automatically triggered by sub.end() with closing = false):
|
||||
# sub.connection_gone("no heartbeat for #{timeSinceLastHeartbeat}ms")
|
||||
else
|
||||
console.warn "[#{new Date()}] No heartbeat for #{timeSinceLastHeartbeat}ms on #{heartbeatChannel}, but not reconnecting (already reconnecting)"
|
||||
|
||||
# Reset timer after triggering a reconnect to avoid potential cascading failure.
|
||||
lastHeartbeat = Date.now()
|
||||
|
||||
|
|
Loading…
Reference in a new issue