Explorar el Código

[misc] let the orchestrator handle the process restart

Note that there is also the `shutdownCleanly` interval which may notice
 that the shutdown has completed. There is some network IO required to
 signal all clients the server disconnect, so we cannot run process.exit
 immediately.
Jakob Ackermann hace 6 años
padre
commit
ea75b84eef
Se han modificado 1 ficheros con 12 adiciones y 1 borrados
  1. 12 1
      services/real-time/app.js

+ 12 - 1
services/real-time/app.js

@@ -98,7 +98,16 @@ function healthCheck(req, res) {
     }
   })
 }
-app.get('/health_check', healthCheck)
+app.get(
+  '/health_check',
+  (req, res, next) => {
+    if (Settings.shutDownComplete) {
+      return res.sendStatus(503)
+    }
+    next()
+  },
+  healthCheck
+)
 
 app.get('/health_check/redis', healthCheck)
 
@@ -167,6 +176,8 @@ function drainAndShutdown(signal) {
               client.disconnect()
             })
           }
+          // Mark the node as unhealthy.
+          Settings.shutDownComplete = true
         }, Settings.gracefulReconnectTimeoutMs)
       })
       shutdownCleanly(signal)