Как изящно отключить пул соединений mongoose? - PullRequest
0 голосов
/ 02 февраля 2019

Если я получаю SIGINT / SIGTERM (например, ctrl + c), тогда я должен изящно остановить свое приложение и закрыть все соединения с сервером mongodb.

В большинстве документов / учебных пособий утверждается, чточтобы остановить соединение (или пул соединений), я должен использовать mongoose.disconnect() - который вызывает .close() для соединений в пуле.

Однако все этиВ документах также говорится, что это должно быть сделано после того, как все ожидающие записи завершены .

Как я могу узнать это, когда я получаю событие сигнала (например, SIGINT, SIGTERM и т. д.)?Есть ли у mongoose изящная функция выключения, или я потеряю данные при вызове disconnect()?

(я использую последние биты.)

1 Ответ

0 голосов
/ 03 февраля 2019

Для получения сигнала SIGINT и прекращения соединения вы можете использовать следующий код:

process.on('SIGINT', () => {
    mongoose.disconnect().then(() => {
        process.exit();
    });
});
...