keep-alive
Version:
keep-alive is a node module for defining and executing a simple keep-alive policy
47 lines (37 loc) • 1.08 kB
JavaScript
var request = require('request');
exports = module.exports = keepAlive;
var interval = 1000, loop = 0, max = 1, keepAlives = {};
function keepAlive(url, frequency) {
return exports.add(url, frequency);
}
/**
*
* The resolution of this process is 1000 milliceconds,
* so anything with a frequency less than 1000 will be
* processed every time (and no more);
*/
exports.add = function(url, frequency){
var iteration = (frequency || 1200000) / interval;
max = Math.max(max, iteration);
keepAlives[url] = { frequency: frequency, iteration: iteration };
return exports;
};
exports.remove = function(url){
delete keepAlives[url];
return exports;
};
exports.list = function(){
return keepAlives;
};
var process = function() {
var keys = Object.keys(keepAlives);
loop = ++loop % max;
for (var i = keys.length - 1; i >= 0; i--) {
if ((loop % keepAlives[keys[i]].iteration) === 0) {
console.log(new Date(), loop, keys[i]);
//request.get(keys[i]);
}
}
return setTimeout((function() { return process(); }), interval);
}
process();