diff --git a/bin/www b/bin/www index bc2a1cd..1bcaa76 100644 --- a/bin/www +++ b/bin/www @@ -5,8 +5,10 @@ */ var app = require('../app'); +var cluster = require('cluster'); var debug = require('debug')('eve-reactions-calculator:server'); var http = require('http'); +var numCPUs = require('os').cpus().length; /** * Get port from environment and store in Express. @@ -15,19 +17,40 @@ var http = require('http'); var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); -/** - * Create HTTP server. - */ +if (cluster.isMaster) { + // Fork workers. + for (var i = 0; i < numCPUs; i++) { + cluster.fork(); + } -var server = http.createServer(app); + // If a worker dies, log it to the console and start another worker. + cluster.on('exit', function(worker, code, signal) { + console.log('Worker ' + worker.process.pid + ' died.'); + cluster.fork(); + }); -/** - * Listen on provided port, on all network interfaces. - */ + // Log when a worker starts listening + cluster.on('listening', function(worker, address) { + console.log('Worker started with PID ' + worker.process.pid + '.'); + }); -server.listen(port); -server.on('error', onError); -server.on('listening', onListening); +} else { + /** + * 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); +} + +// The rest of the bin/www file..... /** * Normalize a port into a number, string, or false. diff --git a/bin/www-old b/bin/www-old new file mode 100644 index 0000000..bc2a1cd --- /dev/null +++ b/bin/www-old @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require('../app'); +var debug = require('debug')('eve-reactions-calculator:server'); +var http = require('http'); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT || '3000'); +app.set('port', port); + +/** + * 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); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server "error" event. + */ + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server "listening" event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + debug('Listening on ' + bind); +} diff --git a/db_server/dbserver.js b/db_server/dbserver.js new file mode 100644 index 0000000..eee1af7 --- /dev/null +++ b/db_server/dbserver.js @@ -0,0 +1,164 @@ +var mongo = require('mongodb'); +var request = require('request'); +var fs = require('fs'); +var svurl = "mongodb://localhost:27017/eve-reactor"; +var items = require('./items.json'); +var marketUrl = "https://market.fuzzwork.co.uk/aggregates/?region=60003760&types="; +var testMarketUrl = "https://market.fuzzwork.co.uk/aggregates/?region=60003760&types=34,35,36"; + +addDaily(); + +function getItemID(name){ + for(let i=0;i