diff options
-rw-r--r-- | cluster-geo/cluster-geo/cluster-geo.js | 8 | ||||
-rw-r--r-- | tests/http/agent.js | 15 | ||||
-rw-r--r-- | tests/http/server.js | 18 |
3 files changed, 25 insertions, 16 deletions
diff --git a/cluster-geo/cluster-geo/cluster-geo.js b/cluster-geo/cluster-geo/cluster-geo.js index 44af8492..0dea22f2 100644 --- a/cluster-geo/cluster-geo/cluster-geo.js +++ b/cluster-geo/cluster-geo/cluster-geo.js @@ -5,8 +5,14 @@ // // GeoIP cache TTL in ms -var CACHE_TTL = (60 * 60 * 24 * 60 * 1000); // 60 days +var CACHE_TTL = (60 * 60 * 24 * 120 * 1000); // 120 days +// Globally increase event emitter maximum listeners +var EventEmitter = require('events'); +EventEmitter.prototype._maxListeners = 1000; +process.setMaxListeners(1000); + +// Load config var config = require(__dirname + '/config.js'); if (!config.maxmind) { diff --git a/tests/http/agent.js b/tests/http/agent.js index 0595ada4..9ab2e019 100644 --- a/tests/http/agent.js +++ b/tests/http/agent.js @@ -97,7 +97,7 @@ function agentIdToIp(agentId) }; var lastTestResult = null; -var allOtherAgents = []; +var allOtherAgents = {}; function doTest() { @@ -114,16 +114,19 @@ function doTest() if (body) { try { var peers = JSON.parse(body); - if (Array.isArray(peers)) - allOtherAgents = allOtherAgents.concat(peers); + if (Array.isArray(peers)) { + for(var xx=0;xx<peers.length;++xx) + allOtherAgents[peers[xx]] = true; + } } catch (e) {} } - if (allOtherAgents.length > 1) { + var agents = Object.keys(allOtherAgents); + if (agents.length > 1) { - var target = allOtherAgents[Math.floor(Math.random() * allOtherAgents.length)]; + var target = agents[Math.floor(Math.random() * agents.length)]; while (target === thisAgentId) - target = allOtherAgents[Math.floor(Math.random() * allOtherAgents.length)]; + target = agents[Math.floor(Math.random() * agents.length)]; var testRequest = null; var timeoutId = null; diff --git a/tests/http/server.js b/tests/http/server.js index 681f1069..629784da 100644 --- a/tests/http/server.js +++ b/tests/http/server.js @@ -34,16 +34,16 @@ app.post('/:agentId',function(req,res) { } catch (e) {} } - var thisUpdate = null; - if (!(agentId in knownAgents)) { - thisUpdate = Object.keys(knownAgents); - for(var id in knownAgents) - knownAgents[id].push(agentId); - knownAgents[agentId] = []; - } else { - thisUpdate = knownAgents[agentId]; - knownAgents[agentId] = []; + knownAgents[agentId] = true; + var thisUpdate = []; + var agents = Object.keys(knownAgents); + if (agents.length < 100) + thisUpdate = agents; + else { + for(var xx=0;xx<100;++xx) + thisUpdate.push(agents[Math.floor(Math.random() * agents.length)]); } + return res.status(200).send(JSON.stringify(thisUpdate)); }); |