Removes un-necessary shutdown handler (#3786)
* Removes un-necessary shutdown handler - When registering a shutdown hander, the node process has to be exited manually which causes issues for many users * Proper graceful shutdown from CLI
This commit is contained in:
committed by
Arthur Cinader
parent
864d191d0c
commit
8d67776c2e
@@ -97,17 +97,6 @@ export class MongoStorageAdapter {
|
||||
|
||||
// MaxTimeMS is not a global MongoDB client option, it is applied per operation.
|
||||
this._maxTimeMS = mongoOptions.maxTimeMS;
|
||||
process.on('SIGTERM', this.handleShutdown(this));
|
||||
process.on('SIGINT', this.handleShutdown(this));
|
||||
}
|
||||
|
||||
handleShutdown(storageAdapter) {
|
||||
return () => {
|
||||
if (!storageAdapter.database) {
|
||||
return;
|
||||
}
|
||||
storageAdapter.database.close(false);
|
||||
}
|
||||
}
|
||||
|
||||
connect() {
|
||||
@@ -139,6 +128,13 @@ export class MongoStorageAdapter {
|
||||
return this.connectionPromise;
|
||||
}
|
||||
|
||||
handleShutdown() {
|
||||
if (!this.database) {
|
||||
return;
|
||||
}
|
||||
this.database.close(false);
|
||||
}
|
||||
|
||||
_adaptiveCollection(name: string) {
|
||||
return this.connect()
|
||||
.then(() => this.database.collection(this._collectionPrefix + name))
|
||||
|
||||
@@ -313,6 +313,13 @@ class ParseServer {
|
||||
return ParseServer.app(this.config);
|
||||
}
|
||||
|
||||
handleShutdown() {
|
||||
const { adapter } = this.config.databaseController;
|
||||
if (adapter && typeof adapter.handleShutdown === 'function') {
|
||||
adapter.handleShutdown();
|
||||
}
|
||||
}
|
||||
|
||||
static app({maxUploadSize = '20mb', appId}) {
|
||||
// This app serves the Parse API directly.
|
||||
// It's the equivalent of https://api.parse.com/1 in the hosted Parse API.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-disable no-console */
|
||||
import express from 'express';
|
||||
import { ParseServer } from '../index';
|
||||
import ParseServer from '../index';
|
||||
import definitions from './definitions/parse-server';
|
||||
import cluster from 'cluster';
|
||||
import os from 'os';
|
||||
@@ -43,9 +43,9 @@ function startServer(options, callback) {
|
||||
app.use(middleware);
|
||||
}
|
||||
|
||||
const api = new ParseServer(options);
|
||||
const parseServer = new ParseServer(options);
|
||||
const sockets = {};
|
||||
app.use(options.mountPath, api);
|
||||
app.use(options.mountPath, parseServer.app);
|
||||
|
||||
const server = app.listen(options.port, options.host, callback);
|
||||
server.on('connection', initializeConnections);
|
||||
@@ -85,6 +85,7 @@ function startServer(options, callback) {
|
||||
console.log('Termination signal received. Shutting down.');
|
||||
destroyAliveConnections();
|
||||
server.close();
|
||||
parseServer.handleShutdown();
|
||||
};
|
||||
process.on('SIGTERM', handleShutdown);
|
||||
process.on('SIGINT', handleShutdown);
|
||||
|
||||
Reference in New Issue
Block a user