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

+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "hydrooj",
"version": "2.19.2",
"version": "2.19.3",
"bin": "bin/hydrooj.js",
"main": "dist/loader.js",
"typings": "dist/loader.d.ts",
+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`);