executor-service
Version:
An "ExecutorService" implementation closely modeled after its java counterpart. Provides child-process executors to mimic multithreaded executors. Implements "createExecutor(module_path_or_local_fn, [module_or_fn_constructor_args]), and "createExecutorPoo
44 lines (39 loc) • 965 B
JavaScript
var ExecutorService = require("./lib/ExecutorService");
var executor = ExecutorService.createExecutorPool(1, function(){
return {
echo : function (x, cb) {
return cb(null, x);
}
}
});
function syncLoop( amt, cb ) {
var ct=0;
var loop = function () {
executor.invoke('echo',++ct,function (err, result){
if (ct < amt) return loop();
cb();
})
}
loop();
}
function asyncLoop( amt, cb ) {
var ct=0;
var loop = function () {
executor.invoke('echo',++ct,function (err, result){
if (ct < amt) return;
cb();
})
}
for(var i=0; i<amt; i++) loop();
}
var start_sync = Date.now();
syncLoop(100000, function(){
var ops = ( 100000/ (Date.now()-start_sync)) * 1000;
console.log("syncLoop: %s ops/s",ops)
var start_async = Date.now();
asyncLoop(100000, function(){
var ops = ( 100000/ (Date.now()-start_async)) * 1000;
console.log("asyncLoop: %s ops/s",ops)
process.exit();
})
})