Untitled
unknown
plain_text
2 years ago
1.1 kB
8
Indexable
const cluster = require('cluster');
const os = require('os');
const app = require('./config/server');
// Number of CPU cores
const numCPUs = os.cpus().length;
// If the current process is the master process
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers for each CPU core
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
// Handle worker process exit
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
// Ensure a new worker is spawned if one dies
cluster.fork();
});
} else {
// Worker process - start the server
const startServer = async () => {
try {
const PORT = process.env.PORT || 5000;
await app.listen(PORT);
console.log(`Worker ${process.pid} is running on port ${PORT}`);
} catch (error) {
console.error(`Worker ${process.pid} encountered an error:`, error.message);
process.exit(1);
}
};
startServer();
}
Editor is loading...
Leave a Comment