Skip to content

Commit

Permalink
index has CLI interface, is clustered
Browse files Browse the repository at this point in the history
  • Loading branch information
dxprog committed Oct 10, 2017
1 parent 23bcc14 commit 2d67109
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const cluster = require('cluster');
const program = require('commander');
const os = require('os');

const App = require('./src/app');

const DEFAULT_PORT = 4000;

program
.version(require('./package.json').version)
.option('-p, --port <n>', 'Port', parseInt)
.parse(process.argv);

if (cluster.isMaster) {
// Spin up two processes per CPU
const processCount = os.cpus().length * 2;

console.log(`Master process spinning up ${processCount} children`);

for (let i = 0; i < processCount; i++) {
cluster.fork();
}

cluster.on('exit', (worker, code, signal) => {
console.log(`Process ${worker.pid} died`);
});
} else {
const app = new App(program.port || DEFAULT_PORT);
app.start().then(() => {
console.log(`Process ${process.pid} is running`);
});
}

0 comments on commit 2d67109

Please sign in to comment.