修改 node 进程错误监控

This commit is contained in:
whyour 2023-07-08 00:27:05 +08:00
parent 683482e067
commit 3aa112e373

View File

@ -5,18 +5,34 @@ import Sock from './sock';
export default async ({ server }: { server: Server }) => { export default async ({ server }: { server: Server }) => {
await Sock({ server }); await Sock({ server });
Logger.info('✌️ Sock loaded'); Logger.info('✌️ Sock loaded');
let exitTime = 0;
let timer: NodeJS.Timeout;
process.on('SIGINT', () => { process.on('SIGINT', (singal) => {
Logger.info('✌️ Server need close'); Logger.warn(`Server need close, singal ${singal}`);
server.close(() => { exitTime++;
setTimeout(() => { if (exitTime >= 3) {
process.exit(); Logger.warn('Forcing server close');
}, 10000); clearTimeout(timer);
});
setTimeout(() => {
console.log('Forcing server close !!!');
process.exit(1); process.exit(1);
}, 15000); }
server.close(() => {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
process.exit();
}, 15000);
});
});
process.on('uncaughtException', (error) => {
Logger.error('Uncaught exception:', error);
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
Logger.error('Unhandled rejection:', reason);
process.exit(1);
}); });
}; };