UNPKG

896 BJavaScriptView Raw
1var cluster = require('cluster');
2var Derby = require('./Derby');
3var util = require('racer/lib/util');
4
5// Extend template types with html parsing on server
6require('derby-parsing');
7
8util.isProduction = process.env.NODE_ENV === 'production';
9
10Derby.prototype.run = function(createServer) {
11 // In production
12 if (this.util.isProduction) return createServer();
13 if (cluster.isMaster) {
14 console.log('Master pid ', process.pid);
15 startWorker();
16 } else {
17 createServer();
18 }
19};
20
21function startWorker() {
22 var worker = cluster.fork();
23 worker.once('disconnect', function () {
24 worker.process.kill();
25 });
26 worker.on('message', function(message) {
27 if (message.type === 'reload') {
28 if (worker.disconnecting) return;
29 console.log('Killing %d', worker.process.pid);
30 worker.process.kill();
31 worker.disconnecting = true;
32 startWorker();
33 }
34 });
35}