【发布时间】:2016-09-28 07:34:24
【问题描述】:
是否可以使用 async.parallelLimit 为并行运行的进程设置一个限制?我使用以下非常简单的代码来测试它是如何工作的。
var async = require("async");
var i = 0;
function write() {
i++;
console.log("Done", i);
}
async.parallelLimit([
function(callback) {
write();
callback();
}
], 10, function() {
console.log("finish");
});
当然,我得到的一切都是这样的:
Done 1
finish
在我的例子中,我有一个经常被调用的函数,但我只希望它同时运行 5 次。其他呼叫应排队。 (是的,我知道 async.queue ,但这不是我在这个问题中想要的)。
所以现在的问题是,async.parallelLimit 是否可行?
//编辑:
其实我也有类似的东西:
for(var i = 0; i < somthing.length; i++) { //i > 100 for example
write();
}
因为 node.js 的不同步性,它可以同时运行 100 次。但是在这种情况下,我如何限制并行运行的进程?
【问题讨论】:
标签: node.js asynchronous parallel-processing