Brian Gough 5 лет назад
Родитель
Сommit
fc11574698
2 измененных файлов с 11 добавлено и 0 удалено
  1. 9 0
      services/clsi/app.js
  2. 2 0
      services/clsi/config/settings.defaults.js

+ 9 - 0
services/clsi/app.js

@@ -339,6 +339,15 @@ const loadHttpPort = Settings.internal.load_balancer_agent.local_port
 
 if (!module.parent) {
   // Called directly
+
+  // handle uncaught exceptions when running in production
+  if (Settings.catchErrors) {
+    process.removeAllListeners('uncaughtException')
+    process.on('uncaughtException', (error) =>
+      logger.error({ err: error }, 'uncaughtException')
+    )
+  }
+
   app.listen(port, host, (error) => {
     if (error) {
       logger.fatal({ error }, `Error starting CLSI on ${host}:${port}`)

+ 2 - 0
services/clsi/config/settings.defaults.js

@@ -25,6 +25,8 @@ module.exports = {
   processLifespanLimitMs:
     parseInt(process.env.PROCESS_LIFE_SPAN_LIMIT_MS) || 60 * 60 * 24 * 1000 * 2,
 
+  catchErrors: process.env.CATCH_ERRORS === 'true',
+
   path: {
     compilesDir: Path.resolve(__dirname, '../compiles'),
     outputDir: Path.resolve(__dirname, '../output'),