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

Merge pull request #4077 from weseek/imprv/implement-single-handler-for-PID-1-problem

Imprv/implement single handler for pid 1 problem
Yuki Takei 4 лет назад
Родитель
Сommit
1d439db0e6
3 измененных файлов с 5 добавлено и 26 удалено
  1. 0 1
      packages/slackbot-proxy/package.json
  2. 5 13
      packages/slackbot-proxy/src/Server.ts
  3. 0 12
      yarn.lock

+ 0 - 1
packages/slackbot-proxy/package.json

@@ -44,7 +44,6 @@
     "cross-env": "^7.0.0",
     "dotenv-flow": "^3.2.0",
     "express-bunyan-logger": "^1.3.3",
-    "express-graceful-exit": "=0.5.0",
     "extensible-custom-error": "^0.0.7",
     "helmet": "^4.6.0",
     "http-errors": "^1.8.0",

+ 5 - 13
packages/slackbot-proxy/src/Server.ts

@@ -11,9 +11,8 @@ import methodOverride from 'method-override';
 import helmet from 'helmet';
 import { Express } from 'express';
 import expressBunyanLogger from 'express-bunyan-logger';
-import gracefulExit from 'express-graceful-exit';
 
-import { ConnectionOptions } from 'typeorm';
+import { ConnectionOptions, getConnectionManager } from 'typeorm';
 import { createTerminus } from '@godaddy/terminus';
 
 import swaggerSettingsForDev from '~/config/swagger/config.dev';
@@ -107,6 +106,7 @@ const helmetOptions = isProduction ? {} : {
     ],
   },
 })
+
 export class Server {
 
   @Inject()
@@ -124,19 +124,11 @@ export class Server {
     if (serverUri === undefined) {
       throw new Error('The environment variable \'SERVER_URI\' must be defined.');
     }
-
-    const server = this.injector.get<HttpServer>(HttpServer);
-
-    // init express-graceful-exit
-    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-    gracefulExit.init(server!);
   }
 
   $beforeRoutesInit(): void {
-    const expressApp = this.app.getApp();
 
     this.app
-      .use(gracefulExit.middleware(expressApp))
       .use(cookieParser())
       .use(compress({}))
       .use(methodOverride())
@@ -153,15 +145,15 @@ export class Server {
   }
 
   $beforeListen(): void {
-    const expressApp = this.app.getApp();
     const server = this.injector.get<HttpServer>(HttpServer);
 
     // init terminus
     createTerminus(server, {
       onSignal: async() => {
         logger.info('server is starting cleanup');
-        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
-        gracefulExit.gracefulExitHandler(expressApp, server!);
+        const connectionManager = getConnectionManager();
+        const defaultConnection = connectionManager.get('default');
+        await defaultConnection.close();
       },
       onShutdown: async() => {
         logger.info('cleanup finished, server is shutting down');

+ 0 - 12
yarn.lock

@@ -7964,13 +7964,6 @@ express-form@~0.12.0:
     object-additions "^0.5.1"
     validator "^2.1.0"
 
-express-graceful-exit@=0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/express-graceful-exit/-/express-graceful-exit-0.5.0.tgz#fcde6495af84f361e66f119bf0e3eca69955f9f1"
-  integrity sha512-gZkxdmgYz6VVHjZiMTaO59N875ugmBnzopF95q8Fzmws86JLNWMwGjLVG4i+99WO4v9L5wl6vKYFyGoHKoNJ7A==
-  dependencies:
-    underscore "^1.4.4"
-
 express-mongo-sanitize@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/express-mongo-sanitize/-/express-mongo-sanitize-2.1.0.tgz#a8c647787c25ded6e97b5e864d113e7687c5d471"
@@ -19057,11 +19050,6 @@ umask@^1.1.0:
   resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d"
   integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=
 
-underscore@^1.4.4:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1"
-  integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==
-
 unherit@^1.0.4:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.2.tgz#14f1f397253ee4ec95cec167762e77df83678449"