Просмотр исходного кода

Merge pull request #24327 from overleaf/msm-update-max-reconnect-gracefully-interval

[web] Make `maxReconnectGracefullyIntervalMs` configurable

GitOrigin-RevId: 18846b050e76ec86d00bc0dd7e07ab09d552bed7
Miguel Serrano 1 год назад
Родитель
Сommit
d59afb21be

+ 2 - 0
services/web/app/src/Features/Project/ProjectController.js

@@ -868,6 +868,8 @@ const _ProjectController = {
         editorThemes: THEME_LIST,
         legacyEditorThemes: LEGACY_THEME_LIST,
         maxDocLength: Settings.max_doc_length,
+        maxReconnectGracefullyIntervalMs:
+          Settings.maxReconnectGracefullyIntervalMs,
         brandVariation,
         allowedImageNames,
         gitBridgePublicBaseUrl: Settings.gitBridgePublicBaseUrl,

+ 1 - 0
services/web/app/views/project/editor/_meta.pug

@@ -8,6 +8,7 @@ meta(name="ol-brandVariation" data-type="json" content=brandVariation)
 meta(name="ol-isTokenMember" data-type="boolean" content=isTokenMember)
 meta(name="ol-isRestrictedTokenMember" data-type="boolean" content=isRestrictedTokenMember)
 meta(name="ol-maxDocLength" data-type="json" content=maxDocLength)
+meta(name="ol-maxReconnectGracefullyIntervalMs" data-type="json" content=maxReconnectGracefullyIntervalMs)
 meta(name="ol-wikiEnabled" data-type="boolean" content=settings.proxyLearn)
 meta(name="ol-chatEnabled" data-type="boolean" content=chatEnabled)
 meta(name="ol-projectHistoryBlobsEnabled" data-type="boolean" content=projectHistoryBlobsEnabled)

+ 5 - 0
services/web/config/settings.defaults.js

@@ -660,6 +660,11 @@ module.exports = {
   gracefulShutdownDelayInMs:
     parseInt(process.env.GRACEFUL_SHUTDOWN_DELAY_SECONDS ?? '5', 10) * seconds,
 
+  maxReconnectGracefullyIntervalMs: parseInt(
+    process.env.MAX_RECONNECT_GRACEFULLY_INTERVAL_MS ?? '30000',
+    10
+  ),
+
   // Expose the hostname in the `X-Served-By` response header
   exposeHostname: process.env.EXPOSE_HOSTNAME === 'true',
 

+ 3 - 1
services/web/frontend/js/features/ide-react/connection/connection-manager.ts

@@ -21,7 +21,9 @@ const JOIN_PROJECT_RATE_LIMITED_DELAY = 15 * 1000
 const BACK_OFF_RECONNECT_OFFLINE = 5000
 
 const RECONNECT_GRACEFULLY_RETRY_INTERVAL_MS = 5000
-const MAX_RECONNECT_GRACEFULLY_INTERVAL_MS = 45 * 1000
+const MAX_RECONNECT_GRACEFULLY_INTERVAL_MS = getMeta(
+  'ol-maxReconnectGracefullyIntervalMs'
+)
 
 const BEFORE_RECONNECT = 'beforeReconnect'
 

+ 1 - 0
services/web/frontend/js/utils/meta.ts

@@ -151,6 +151,7 @@ export interface Meta {
   'ol-managers': MinimalUser[]
   'ol-mathJaxPath': string
   'ol-maxDocLength': number
+  'ol-maxReconnectGracefullyIntervalMs': number
   'ol-memberGroupSubscriptions': MemberGroupSubscription[]
   'ol-memberOfSSOEnabledGroups': GroupSSOLinkingStatus[]
   'ol-members': MinimalUser[]