clusterisation du serveur

This commit is contained in:
Antoine WEBER 2015-09-22 14:50:45 +02:00
parent 1b9623600c
commit 0de920ed93
4 changed files with 54 additions and 23 deletions

8
README
View File

@ -63,8 +63,16 @@ sudo ln -s ~/Movies /media/plex
configurer vos chaines sur: http://localhost:32400/web/index.html
===================
COMPILATION
npm install enclose -g
enclose -o bin/mac_bin --loglevel info -c enclose_config.js -v 0.12.7 ./bin/www
===================
TODO Liste
ajouter une présentation sur l'index, configurable dans config.js
gérer les images des vignettes
faire une page spéciales pour les séries
gérer les téléchargements multi-source en proposant un lien aria2 (voir aria2.sourceforge.net)

65
bin/www
View File

@ -1,33 +1,56 @@
#!/usr/bin/env node
//On commence par la mise en cluster
var cluster = require('cluster');
/**
* Module dependencies.
*/
// Code to run if we're in the master process
if (cluster.isMaster) {
// Count the machine's CPUs
var cpuCount = require('os').cpus().length;
var app = require('../app');
var debug = require('debug')('plex_webdown:server');
var http = require('http');
// Create a worker for each CPU
for (var i = 0; i < cpuCount; i += 1) {
console.log('Création du fork ' + i);
cluster.fork();
}
/**
* Get port from environment and store in Express.
*/
// Listen for dying workers
cluster.on('exit', function (worker) {
// Replace the dead worker, we're not sentimental
console.log('Worker ' + worker.id + ' died :(');
cluster.fork();
});
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
// Code to run if we're in a worker process
} else {
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('plex_webdown:server');
var http = require('http');
/**
* Create HTTP server.
*/
/**
* Get port from environment and store in Express.
*/
var server = http.createServer(app);
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Listen on provided port, on all network interfaces.
*/
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
}
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.

View File

@ -13,6 +13,7 @@
"jade": "~1.11.0",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0",
"sqlite3": "~3"
"sqlite3": "~3",
"cluster":"~0.7.7"
}
}

View File

@ -1 +0,0 @@
contenu test