Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 7bda4cb

Browse files
authored
fix(serve): only restart workers if their exit was uninentional (#468)
1 parent faa787c commit 7bda4cb

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/server.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,17 @@ export function serve(
4646
logger.log(`Worker ${worker.id} (PID ${worker.process.pid}) online`)
4747
})
4848
cluster.on('exit', (worker, code, signal) => {
49-
logger.error(
50-
`Worker ${worker.id} (PID ${
51-
worker.process.pid
52-
}) exited from signal ${signal} with code ${code}, restarting`
53-
)
54-
cluster.fork()
49+
const baseLogMessage = `Worker ${worker.id} (PID ${
50+
worker.process.pid
51+
}) exited from signal ${signal} with code ${code}`
52+
53+
if (!worker.exitedAfterDisconnect) {
54+
logger.error(`${baseLogMessage}, restarting`)
55+
cluster.fork()
56+
return
57+
}
58+
59+
logger.info(`${baseLogMessage}, not restarting since exit was voluntary`)
5560
})
5661
for (let i = 0; i < options.clusterSize; ++i) {
5762
cluster.fork()

0 commit comments

Comments
 (0)