2011-06-20 21:39:12 +08:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
|
|
/*
|
|
|
|
* SQL API loader
|
|
|
|
* ===============
|
|
|
|
*
|
2012-09-28 19:19:28 +08:00
|
|
|
* node cluster [environment]
|
2011-06-20 21:39:12 +08:00
|
|
|
*
|
|
|
|
* environments: [development, test, production]
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
var _ = require('underscore');
|
2012-09-28 19:19:28 +08:00
|
|
|
var Cluster = require('cluster2');
|
2011-06-20 21:39:12 +08:00
|
|
|
|
|
|
|
// sanity check arguments
|
2011-10-08 00:28:07 +08:00
|
|
|
var ENV = process.argv[2];
|
2012-10-03 23:14:05 +08:00
|
|
|
if (ENV != 'development' && ENV != 'production' && ENV != 'staging') {
|
2011-08-23 21:58:06 +08:00
|
|
|
console.error("\n./cluster [environment]");
|
2012-10-03 23:12:31 +08:00
|
|
|
console.error("environments: [development, test, production, staging]");
|
2011-06-20 21:39:12 +08:00
|
|
|
process.exit(1);
|
|
|
|
}
|
|
|
|
|
|
|
|
// set Node.js app settings and boot
|
2011-10-08 00:28:07 +08:00
|
|
|
global.settings = require(__dirname + '/config/settings');
|
|
|
|
var env = require(__dirname + '/config/environments/' + ENV);
|
2011-06-20 21:39:12 +08:00
|
|
|
_.extend(global.settings, env);
|
|
|
|
|
2012-09-28 19:19:28 +08:00
|
|
|
// kick off controller
|
|
|
|
var app = require(global.settings.app_root + '/app/controllers/app');
|
|
|
|
|
|
|
|
var cluster = new Cluster({
|
|
|
|
port: global.settings.node_port,
|
2012-10-10 00:40:17 +08:00
|
|
|
host: global.settings.node_host,
|
|
|
|
monHost: global.settings.node_host,
|
2012-11-03 06:19:36 +08:00
|
|
|
monPort: global.settings.node_port+1,
|
2012-11-03 06:47:01 +08:00
|
|
|
timeout: 600000
|
2012-09-28 19:19:28 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
cluster.listen(function(cb) {
|
|
|
|
cb(app);
|
2012-10-10 00:40:17 +08:00
|
|
|
}, function() {
|
|
|
|
console.log("CartoDB SQL API listening on " + global.settings.node_host + ':' + global.settings.node_port);
|
2012-09-28 19:19:28 +08:00
|
|
|
});
|