Przeglądaj źródła

[misc] let proxys observe an upcoming shutdown before starting to drain

Otherwise clients may be routed to the same pod upon reconnecting.
Jakob Ackermann 6 lat temu
rodzic
commit
d320c2d5f3

+ 8 - 3
services/real-time/app.coffee

@@ -125,9 +125,14 @@ drainAndShutdown = (signal) ->
 		return
 		return
 	else
 	else
 		Settings.shutDownInProgress = true
 		Settings.shutDownInProgress = true
-		logger.warn signal: signal, "received interrupt, starting drain over #{shutdownDrainTimeWindow} mins"
-		DrainManager.startDrainTimeWindow(io, shutdownDrainTimeWindow)
-		shutdownCleanly(signal)
+		statusCheckInterval = Settings.statusCheckInterval
+		if statusCheckInterval
+			logger.warn signal: signal, "received interrupt, delay drain by #{statusCheckInterval}ms"
+		setTimeout () ->
+			logger.warn signal: signal, "received interrupt, starting drain over #{shutdownDrainTimeWindow} mins"
+			DrainManager.startDrainTimeWindow(io, shutdownDrainTimeWindow)
+			shutdownCleanly(signal)
+		, statusCheckInterval
 
 
 
 
 Settings.shutDownInProgress = false
 Settings.shutDownInProgress = false

+ 2 - 0
services/real-time/config/settings.defaults.coffee

@@ -60,6 +60,8 @@ settings =
 	
 	
 	publishOnIndividualChannels: process.env['PUBLISH_ON_INDIVIDUAL_CHANNELS'] or false
 	publishOnIndividualChannels: process.env['PUBLISH_ON_INDIVIDUAL_CHANNELS'] or false
 
 
+	statusCheckInterval: parseInt(process.env['STATUS_CHECK_INTERVAL'] or '0')
+
 	sentry:
 	sentry:
 		dsn: process.env.SENTRY_DSN
 		dsn: process.env.SENTRY_DSN