core: start another worker on crash

This commit is contained in:
undefined committed 2021-03-03 13:27:26 +08:00
1 parent fa9396afd0
commit d33401c4e9
2 files changed
+4 -3

No files matched your search

+3 -2
View File
@@ -97,8 +97,8 @@ async function stopWorker() {
cluster.disconnect();
}
async function startWorker(cnt: number) {
await fork(['--firstWorker']);
async function startWorker(cnt: number, createFirst = true) {
await fork(createFirst ? ['--firstWorker'] : undefined);
for (let i = 1; i < cnt; i++) await fork();
}
@@ -158,6 +158,7 @@ export async function load() {
logger.info('Master started');
cluster.on('exit', (worker, code, signal) => {
logger.warn(`Worker ${worker.process.pid} ${worker.id} exit: ${code} ${signal}`);
if (code) startWorker(1);
});
cluster.on('disconnect', (worker) => {
logger.info(`Worker ${worker.process.pid} ${worker.id} disconnected`);