Skip to content

Commit 46ff609

Browse files
authored
Restart workers that died (sourcegraph#79)
1 parent 1d09fac commit 46ff609

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/server.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,17 @@ export async function serve(options: ServeOptions, createLangHandler: () => Lang
3737
rewriteConsole();
3838

3939
if (cluster.isMaster) {
40-
console.error(`Master node process spawning ${options.clusterSize} workers`)
41-
for (let i = 0; i < options.clusterSize; ++i) {
42-
const worker = cluster.fork().on('disconnect', () => {
43-
console.error(`worker ${worker.process.pid} disconnect`)
44-
});
45-
}
46-
40+
console.error(`Master (PID ${process.pid}) spawning ${options.clusterSize} workers`);
41+
cluster.on('online', worker => {
42+
console.error(`Worker ${worker.id} (PID ${worker.process.pid}) online`);
43+
});
4744
cluster.on('exit', (worker, code, signal) => {
48-
const reason = code === null ? signal : code;
49-
console.error(`worker ${worker.process.pid} exit (${reason})`);
45+
console.error(`Worker ${worker.id} (PID ${worker.process.pid}) exited from signal ${signal} with code ${code}, restarting`);
46+
cluster.fork();
5047
});
48+
for (let i = 0; i < options.clusterSize; ++i) {
49+
cluster.fork();
50+
}
5151
} else {
5252
console.error('Listening for incoming LSP connections on', options.lspPort);
5353
var server = net.createServer(socket => {

0 commit comments

Comments
 (0)