Unverified Commit d075f846 authored by Vinu Kumar's avatar Vinu Kumar Committed by GitHub
Browse files

Merge pull request #4369 from anoophm/handle_SIGTERM

Issue #TG 267 fix: graceful shutdown of server 
parents fb6ebcdd fe915c2c
master Dark_theme SB-25589 SB-28090 aws_fileRead contributions dependabot/npm_and_yarn/src/app/client/decode-uri-component-0.2.2 dependabot/npm_and_yarn/src/app/decode-uri-component-0.2.2 dependabot/npm_and_yarn/src/app/express-4.17.3 dependabot/npm_and_yarn/src/app/jsonwebtoken-9.0.0 dependabot/npm_and_yarn/src/desktop/OpenRAP/decode-uri-component-0.2.2 dependabot/npm_and_yarn/src/desktop/OpenRAP/express-4.17.3 dependabot/npm_and_yarn/src/desktop/OpenRAP/jsonwebtoken-9.0.0 dependabot/npm_and_yarn/src/desktop/OpenRAP/qs-6.5.3 dependabot/npm_and_yarn/src/desktop/decode-uri-component-0.2.2 dependabot/npm_and_yarn/src/desktop/express-4.17.3 dependabot/npm_and_yarn/src/desktop/jsonwebtoken-9.0.0 dependabot/npm_and_yarn/src/desktop/qs-6.10.3 filters_5.1.1 gcp gcp_test keshavprasadms-patch-1 keshavprasadms-patch-2 release-3.0.3 release-3.1.0 release-3.1.1 release-3.1.2 release-3.2.0 release-3.2.1 release-3.2.10 release-3.2.11 release-3.2.12 release-3.2.13 release-3.2.14 release-3.2.2 release-3.2.3 release-3.2.4 release-3.3.0 release-3.3.0-telemetry-fix release-3.3.1 release-3.3.2 release-3.4.0 release-3.4.1 release-3.4.2 release-3.4.3 release-3.4.4 release-3.4.5 release-3.4.6 release-3.4.7 release-3.5.0 release-3.5.1 release-3.5.2 release-3.5.3 release-3.6.0 release-3.6.1 release-3.6.5 release-3.6.6 release-3.7.0 release-3.7.1 release-3.7.2 release-3.8.0 release-3.8.1 release-3.8.2 release-3.8.3 release-3.9.0 release-3.9.1 release-3.9.2 release-3.9.3 release-4.0.0 release-4.0.1 release-4.0.2 release-4.1 release-4.1.0 release-4.1.1 release-4.10.0 release-4.10.0.1 release-4.10.1 release-4.10.2 release-4.10.2.1 release-4.10.2.2 release-4.10.3 release-4.2.0 release-4.2.1 release-4.3.0 release-4.3.1 release-4.4.0 release-4.4.1 release-4.5.0 release-4.5.1 release-4.5.2 release-4.6.0 release-4.7.0 release-4.7.1 release-4.8.0 release-4.8.5 release-4.9.0 release-4.9.1 release-5.0.0 release-5.0.0.1 release-5.0.0.2 release-5.0.0.3 release-5.0.1 release-5.0.2 release-5.1.0 release-5.1.1 revert-4537-SB-19763 revert-5244-sh-809 revert-5260-SB-table-3.3.0 revert-8284-release-5.0.0 sharathkashyap-patch-1 Tags unavailable
No related merge requests found
Showing with 513 additions and 18 deletions
+513 -18
......@@ -5,18 +5,18 @@
"buildNumber": "1",
"private": true,
"devDependencies": {
"codacy-coverage": "3.0.0",
"babel": "6.23.0",
"chai": "4.2.0",
"chai-spies": "1.0.0",
"chai-http": "4.2.0",
"chai-spies": "1.0.0",
"codacy-coverage": "3.0.0",
"gulp": "4.0.2",
"gulp-deploy-azure-cdn": "2.1.0",
"gulp-brotli": "1.2.1",
"gulp-clean": "0.4.0",
"gulp-decompress": "2.0.2",
"gulp-deploy-azure-cdn": "2.1.0",
"gulp-download": "0.0.1",
"gulp-gzip": "1.4.2",
"gulp-brotli": "1.2.1",
"gulp-rename": "2.0.0",
"gulp-rev": "8.1.1",
"gulp-rev-collector": "1.3.1",
......@@ -78,7 +78,7 @@
},
"dependencies": {
"@project-sunbird/discussion-service": "0.0.6",
"@project-sunbird/ext-framework-server": "0.1.10",
"@project-sunbird/ext-framework-server": "0.1.27",
"@project-sunbird/form-service": "0.0.12",
"@project-sunbird/program": "0.0.5",
"@project-sunbird/review-comment": "0.0.8",
......@@ -98,6 +98,7 @@
"express-session": "1.15.3",
"googleapis": "45.0.0",
"helmet": "3.21.2",
"http-graceful-shutdown": "^2.3.2",
"http-status-codes": "1.3.0",
"jsonwebtoken": "7.4.1",
"kafka-node": "4.1.1",
......
'use strict'
const express = require('express');
const gracefulShutdown = require('http-graceful-shutdown');
const proxy = require('express-http-proxy')
const session = require('express-session')
const path = require('path')
......@@ -88,8 +89,8 @@ app.get('/service/health', healthService.createAndValidateRequestBody, healthSer
app.get("/latex/convert", latexService.convert);
app.post("/latex/convert", bodyParser.json({ limit: '1mb' }), latexService.convert);
app.post('/user/v2/accept/tnc', bodyParser.json({limit: '1mb'}), userService.acceptTnc);
app.get('/user/v1/switch/:userId', bodyParser.json({limit: '1mb'}),keycloak.protect(), userService.switchUser);
app.post('/user/v2/accept/tnc', bodyParser.json({ limit: '1mb' }), userService.acceptTnc);
app.get('/user/v1/switch/:userId', bodyParser.json({ limit: '1mb' }), keycloak.protect(), userService.switchUser);
require('./routes/desktopAppRoutes.js')(app) // desktop app routes
......@@ -178,6 +179,7 @@ function runApp() {
envHelper.defaultChannelId = _.get(channelData, 'result.response.content[0].hashTagId'); // needs to be added in envVariable file
logger.info({ msg: `app running on port ${envHelper.PORTAL_PORT}` })
})
handleShutDowns();
portal.server.keepAliveTimeout = 60000 * 5;
})
}
......@@ -216,4 +218,22 @@ process.on('uncaughtException', (err) => {
console.log('Uncaught Exception', err)
process.exit(1);
});
function handleShutDowns() {
const cleanup = signal => new Promise(async (resolve, reject) => { // close db connections
await frameworkAPI.closeCassandraConnections();
logger.info({ msg: `Closed db connection after ${signal} signal.` })
resolve();
});
gracefulShutdown(portal.server, {
signals: 'SIGINT SIGTERM',
timeout: 60 * 1000, // forcefully shutdown if not closed gracefully after 1 min
onShutdown: cleanup,
finally: () => logger.info({ msg: 'Server gracefully shut down.'}),
development: process.env.sunbird_environment === 'local' ? true : false, // in dev mode skip graceful shutdown
});
}
exports.close = () => portal.server.close()
This diff is collapsed.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment