From d320c2d5f368ef3efc5d591434c6c75548e5dccf Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Thu, 20 Feb 2020 21:44:21 +0100 Subject: [PATCH] [misc] let proxys observe an upcoming shutdown before starting to drain Otherwise clients may be routed to the same pod upon reconnecting. --- services/real-time/app.coffee | 11 ++++++++--- services/real-time/config/settings.defaults.coffee | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/services/real-time/app.coffee b/services/real-time/app.coffee index 677737f862..215b3c7cb9 100644 --- a/services/real-time/app.coffee +++ b/services/real-time/app.coffee @@ -125,9 +125,14 @@ drainAndShutdown = (signal) -> return else 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 diff --git a/services/real-time/config/settings.defaults.coffee b/services/real-time/config/settings.defaults.coffee index 75b39ab2ee..5814530552 100644 --- a/services/real-time/config/settings.defaults.coffee +++ b/services/real-time/config/settings.defaults.coffee @@ -60,6 +60,8 @@ settings = publishOnIndividualChannels: process.env['PUBLISH_ON_INDIVIDUAL_CHANNELS'] or false + statusCheckInterval: parseInt(process.env['STATUS_CHECK_INTERVAL'] or '0') + sentry: dsn: process.env.SENTRY_DSN