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

add variance into shutdown time to avoid stampeed

Henry Oswald 6 лет назад
Родитель
Сommit
acbfc465dc
1 измененных файлов с 16 добавлено и 9 удалено
  1. 16 9
      services/clsi/app.js

+ 16 - 9
services/clsi/app.js

@@ -208,27 +208,34 @@ const resCacher = {
 }
 
 const startupTime = Date.now()
-const checkIfProcessIsTooOld = function() {
+const checkIfProcessIsTooOld = function(cont) {
+  if (typeof Settings.processLifespanLimitMs === 'string') {
+    Settings.processLifespanLimitMs = parseInt(Settings.processLifespanLimitMs)
+    Settings.processLifespanLimitMs +=
+      Settings.processLifespanLimitMs * (Math.random() / 10)
+  }
   if (
     Settings.processLifespanLimitMs &&
     startupTime + Settings.processLifespanLimitMs < Date.now()
   ) {
     logger.log('shutting down, process is too old')
     resCacher.send = function() {}
-    resCacher.statusCode = 500
+    resCacher.code = 500
     resCacher.body = { processToOld: true }
+  } else {
+    cont()
   }
 }
 
 if (Settings.smokeTest) {
   const runSmokeTest = function() {
-    checkIfProcessIsTooOld()
-    logger.log('running smoke tests')
-    smokeTest.run(require.resolve(__dirname + '/test/smoke/js/SmokeTests.js'))(
-      {},
-      resCacher
-    )
-    return setTimeout(runSmokeTest, 30 * 1000)
+    checkIfProcessIsTooOld(function() {
+      logger.log('running smoke tests')
+      smokeTest.run(
+        require.resolve(__dirname + '/test/smoke/js/SmokeTests.js')
+      )({}, resCacher)
+      return setTimeout(runSmokeTest, 30 * 1000)
+    })
   }
   runSmokeTest()
 }