fix(worker): minor improvements of graceful shutdown

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-11-20 14:02:13 +01:00
parent 949278ff1c
commit 0221948aab

View File

@@ -131,42 +131,37 @@ async function start() {
}); });
}); });
async function exitHandler(evtOrExitCodeOrError: number | string | Error) { async function exitHandler(
eventName: string,
evtOrExitCodeOrError: number | string | Error,
) {
logger.info('Starting graceful shutdown', {
code: evtOrExitCodeOrError,
eventName,
});
try { try {
await eventsWorker.close(); await Promise.all([
await sessionsWorker.close(); cronWorker.close(),
await cronWorker.close(); eventsWorker.close(),
sessionsWorker.close(),
notificationWorker.close(),
]);
logger.info('workers closed successfully');
} catch (e) { } catch (e) {
logger.error('exit handler error', { logger.error('exit handler error', {
code: evtOrExitCodeOrError, code: evtOrExitCodeOrError,
error: e, error: e,
}); });
} }
const exitCode = Number.isNaN(+evtOrExitCodeOrError)
process.exit( ? 1
Number.isNaN(+evtOrExitCodeOrError) ? 1 : +evtOrExitCodeOrError, : +evtOrExitCodeOrError;
); process.exit(exitCode);
} }
[ ['uncaughtException', 'unhandledRejection', 'SIGTERM'].forEach((evt) =>
'beforeExit', process.on(evt, (code) => {
'uncaughtException', exitHandler(evt, code);
'unhandledRejection',
'SIGHUP',
'SIGINT',
'SIGQUIT',
'SIGILL',
'SIGTRAP',
'SIGABRT',
'SIGBUS',
'SIGFPE',
'SIGUSR1',
'SIGSEGV',
'SIGUSR2',
'SIGTERM',
].forEach((evt) =>
process.on(evt, (evt) => {
exitHandler(evt);
}), }),
); );